---------------------- android培训、java培训、期待与您交流! ----------------------
好长时间没有搞j2se的东西了 这段时间看了一下视频 好多都忘了 啊
java基础知识重新扫盲
package com.cn.io;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class FileOutputStreamDemo1 {
public static void main(String[] args) throws Exception{
//文件里没内容
FileOutputStream fos = new FileOutputStream("1.text");
fos.write(100);//这行执行结束后文件里尽然是‘d’这个字符
/*
这个2.txt文件中有一个汉字曹
如果改成下列方式
byte[] bt = new byte[2];
int i = in.read(bt);
System.out.println(new String(bt));//打印曹
System.out.println(i);//打印2
因为一个汉字占两个自己而没有指定缓冲区的read()方法一次只读一个字节
而这时只读取了汉字的一个字节 可想而知一定会出现乱码现象
而指定缓冲区大小同样出现另一个问题假如一个文件的汉字很多 打个比方有3个汉字
但是我们指定缓冲区的大小是3这时也会出现乱码
这个被分离单独字节因为无法识别就是一个?对应的accsii码 这就是为什么底下i打印的是178了
*/
FileInputStream in = new FileInputStream("2.text");
int i = in.read();
System.out.println(i);//这个地方打印的是178假如我把2.txt文件中的汉字改为李 这行打印是192
//但accsii表里根本没有192啊
System.out.println((char)178);//这个地方打印的是?2.txt文件内容改了后这行还是打印?
}
}
---------------------- android培训、java培训、期待与您交流! ----------------------