请前辈们解答,小子我菜鸟一枚,虚心求教!
先附上我写的代码:
	public class File2 {
	public static void main(String[] args) throws Exception{
		FileOutputStream f=new FileOutputStream("J:\\资料\\JAVA资料\\IO\\007.txt");
		for(int i='A'; i<='Z'; i++){
			f.write(i);	
			f.write(' ');
					
			
		}
		
		f.flush();
		f.close();
	}
}
public class File3{
	public static void main(String[] args) throws Exception{
	
		FileOutputStream  f=new FileOutputStream("J:\\资料\\JAVA资料\\IO\\007.txt",true);
		//OutputStreamWriter fw=new OutputStreamWriter(f);
		//BufferedWriter bw=new BufferedWriter(fw);
		for(int i='a'; i<='z'; i++){
			f.write(i);	
			f.write(' ');
		}
		
		
			f.flush();
			f.close();	
	
	
	}
	
}
程序File2是向文件写入大写字母,File3是追加小写字母。可是运行完以上程序之后,就会出现一片乱码...我想知道为什么这样会出现乱码。求前辈们赐教!
	
              
              
------解决方案--------------------单引号等同于int,写入字母应该用双引号。
或者你写入前,将char转为String.
------解决方案--------------------你可以去看看API 他上面有说把一个指定的字节写入文件流,也就是说他会处理一个字节类型的数据(byte)而你的传进去的是一个char类型他们所占的byte是不一样的(就是他们的所占的字节不一样)那么这个方法可能就会把你传过来的参数强制转成byte类型这样就可能丢失一些东西,那么就会出现乱码了,你可以先把他转成byte数组在用那个传一个byte数组的方法去写,试试。
------解决方案--------------------我觉得代码本身没什么问题,只是 M$ 自带的记事本存在bug
可以用其他文本编辑工具试试,甚至用浏览器打开,是一切正常的