同样的,
字符流类全部都
继承于Reader和Writer抽象类
OutputStreamReader/writer类
与BufferedWriter/Reader是直接继承于他们的,前者可以设置编码格式,将对应格式的文本文件解码成字符流。后者可以直接读取一整行,但是不会换行。
然后FileWriter和FileReader是直接继承于OutputStreamReader/writer类的,他也封装了一些底层操作,更加方便。但是没有办法设置解码格式,只能按照项目默认的设置解码。
字符流类全部都
继承于Reader和Writer抽象类
OutputStreamReader/writer类
与BufferedWriter/Reader是直接继承于他们的,前者可以设置编码格式,将对应格式的文本文件解码成字符流。后者可以直接读取一整行,但是不会换行。
然后FileWriter和FileReader是直接继承于OutputStreamReader/writer类的,他也封装了一些底层操作,更加方便。但是没有办法设置解码格式,只能按照项目默认的设置解码。
2017-10-26
那个,我总结一下。前面主要讲了字节流和字符流。
字节流都继承于抽象类:InputStream和OutputStream分别用于读入和写出。
然后实现他们的类是:FileInput/OutputStream与BufferOutput/InputStream。但是前者每次只能读取一个字节,这很麻烦。
于是就有了继承他们的类,DataOutputStream和DataInputStream,这个类封装了FileInput/OutputStream的一些底层操作,可以直接输入一个int,string。
而BufferOutput/InputStream可以利用缓冲区,方便快捷的输入输出。
字节流都继承于抽象类:InputStream和OutputStream分别用于读入和写出。
然后实现他们的类是:FileInput/OutputStream与BufferOutput/InputStream。但是前者每次只能读取一个字节,这很麻烦。
于是就有了继承他们的类,DataOutputStream和DataInputStream,这个类封装了FileInput/OutputStream的一些底层操作,可以直接输入一个int,string。
而BufferOutput/InputStream可以利用缓冲区,方便快捷的输入输出。
2017-10-26
所以 if语句应该这么写:if((int)buf[i]>0 && (int)buf[i]<=0xff)
2017-10-21
最赞回答 / qq_安居旧巷猫患者_0
1.read这个函数就是读取字节的2.缓冲区的默认大小好像是8192,以为我在源码中看到private static int defaultBufferSize = 8192;这句话3.要是超过缓冲区大小会怎样不知道
2017-10-21
已采纳回答 / linhbo
去Finder里面右键文件夹,显示文件的简介,然后可以看到文件目录,将文件目录复制下来,文件的路径格式和windows有点差别,比如,windows需要写成File file=new File("C:/ceshi","ddd.txt");那么mac的目录可能是File file=new File("/Users/lhb/ceshi","ddd.txt");你可以写程序自己看看
2017-10-18