io流注意事项

来源:互联网 发布:手机流量打电话软件 编辑:程序博客网 时间:2024/06/02 09:47

io流的输入输出就是玩了四个父类

源:InputStreamReader

目的:OutputStreamWrite

一:字节输出流

流对象的构造器可以创建文件,但是如果改文件已经存在,就直接覆盖。

例如:如果c盘中已经存在a.txt这个文件并且里面有存有hello...一些文字,现在再创建下面流对象之后

FileOutputStream fos = new FileOutputStream("c:\\a.txt")  

直接将现在的这个空白a.txt文件覆盖在原有的上面(即,原有的文件就变成现在的文件了)

fos.write(100);注意如果写入的是int型数字,在文本中打开后显示的是对应的ascii,在文本中,一个汉字占两个字节,一个数字占一个字节。

如果先保留原有的文件并且在后面续写上新的内容需要在file后面加上ture

FileOutputStream fos = new FileOutputStream("c:\\a.txt",ture)

如果需要在文件中换行,符号换行\r\n()可以写在上一行的末尾也可以写在下一行的开头。

例:

fos.write("hello"\r\n.getBytes());

fos.weite("world".getByte());

=======================================================================================

io里面的异常处理

细节:

1.保证流对象作用域足够(即,现在外声明fos=null)

2.catch里面怎么处理异常

输出异常信息,目的是看出哪里处理异常,停下程序从新尝试

3.如果流对象建立失败,需要关流吗?

建立失败是个设么概念(例:FileOutputStream fos = new FileOutputStream("s:\\a.txt",ture)

根本没有s盘,所以就建立失败

所以在关流时需要加一个判断不为null


二:字节输入流



用字节数组来读取(即,读取字节数组)

三:通过字节流复制文件



四:字符输出流(注意:字符输出流只能写入文本文件)


注意:运用字符输出流写文件时必须flush(),如果没有fulsh(),也没有关流,文件是写不进去的,如果没有fulsh

却关流了,文件虽然能写进去,但是比较浪费资源,不建议。

flush()和close的区别:1.flush()只在FileWrite中使用,其他地方不使用

2.flush()只是刷新流,刷完之后流还能使用,close()是关闭这个流,关完之后就不能再

使用了。

五:字符输入流(注意:只能读文本文件)


六:通过字符流进行文件复制(注意:只能是文本文件)


七:字节输出流缓冲流(和字节输出流没什么区别,就是效率快)


八:字节输入流缓冲流



九:字符输入流缓冲流


换行:1.可以使用前面所讲的在第一个字符串后面或者第二个前面加\r\n

   2.可以调用newline()这个方法。

十:字符输入流缓冲流(特有的readLine()方法)


十一:利用字符缓冲流进行文本复制



十二:流转换

总结:

字节------->字符:看不懂的-------------->看得懂的。需要读。输入流 InputStreamReader

字符------->字节:看得懂的--------------->看不懂的。需要写。输出流OutputStreamWriter

原创粉丝点击