先附上我写的代码:
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是追加小写字母。可是运行完以上程序之后,就会出现一片乱码...我想知道为什么这样会出现乱码。求前辈们赐教!
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是追加小写字母。可是运行完以上程序之后,就会出现一片乱码...我想知道为什么这样会出现乱码。求前辈们赐教!
BufferedReader f=new BufferedReader(new InputStreamReader(new FileInputStream("J:\\资料\\JAVA资料\\IO\\007.txt",true),"UTF-8"));
对于JVM来说 从文件读出来二进制转化你所想要的内容,但是它存入也是按照二进制存入的 所以 你要想存字母就存string类型的吧 用valueof()方法转化成字符再存入 你试试看
可以用其他文本编辑工具试试,甚至用浏览器打开,是一切正常的