黑马程序员技术交流社区
标题:
io流问题
[打印本页]
作者:
邱成
时间:
2012-9-10 07:51
标题:
io流问题
本帖最后由 邱成 于 2012-9-10 22:34 编辑
希望某位大侠讲解java 中从字节字符的输入输出的角度看,数据是如何读写的,比如说
dos=new DataoutputStream(new FileOutputStream(tempfile));
for(int i=0;i<10;i++)
dos.Writeint((int)(Math.random()*1000);
在这个过程中本人认为最后写入文件的是以byte 为单位写入,那么DataoutputStream流是以什么单位写入?
并且最后的以bytes为单位写入似乎限制了前面的DateoutputStream流的写入速度,那么这种方式跟直接以FileoutPutStream写入的流有何区别?最后都是以byte为单位写入。都是一个二进制文件,我想起了是格式编码问题?不懂,请高手指教!
作者:
乔九
时间:
2012-9-10 08:37
流是一个有序的字节序列,可作为一个输入源,也可作为一个输出的目的地。
字节流以字节为单位输入输出,字节流类名含有stream;字符流以字符为单位输入输出,字节流
类名含有reader或writer.为了通用性,java中字符是16位的unicode字符,所以8位的字节流必
须和16位的字符流进行转换。字节流到字符流的转换使用InputStreamReader类:
public InputStreamReader(InputStream in);
public InputStreamReader(InputStream in,String encoding);
public OuputStreamWriter(OnputStream in);
public OnputStreamWriter(OnputStream in,String encoding);
Reader和Writer类允许用户在程序中无缝的支持国际字符集,如果要读区的文件是别国语言,
要使用字符流。
JavaI/O字节流与字符流就是java 实现输入/输出 数据 字节流是一个字节一个字节的输入/输出 数据 (两个字节组成一个汉字)所以在用字节流读一串汉字时会出现乱码问题,
同样字符流是一个字符一个字符流(一个字符=两个字节)的输入/输出 数据 用字符流读一串汉字可以解决乱码问题.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2