java 输出流的操作与介绍

一)File类:

File类是java中的文件类,它即可以用来创建目录,也可以用来创建文件。java中所有的IO流都是针对文件的操作,所以,要想把javaIO学好,学扎实,强烈建议先将File学好。

二)FileInputStream/FileOutputStream:字节输入输出流:

这两个流是最低级的流,它们的读取是以字节的形式进行的。之后的字符流,缓冲流都是在它的基础上进行了包装,才更方便读取和写入字符。

同时,如果是读取非文档的内容时,比如像图片和视频,这两个流相当的好用。

FileInputStream fis = new FileInputStream(new File("path"));

FileOutputStream fos = new FileOutputStream (new File("path"));

不过对于流来说,很多的初学者对输入输出的概念容易搞混淆,下面我总结一下自己对流的理解吧:

1、我们应该站在内存的角度去看输入/输出

所谓输入流:就是读取文件内容,放入内存中,相对于内存来说,就是输入(也就是将文件内容输入到内存中)。所以我们要读取文件内容,应该使用FileInputStream(输入流)去将文件内容读入到内存,然后我们才能看到。

所谓输出流:就是写入文件内容,也就是将内存中的内容写入到文件中,相对于内存来说,就是输出。所以我们要写入文件时,应该使用FileOutputStream(输出流)去将内容写入到文件中,然后文件才会有内容。

三)InputStreamReader/OutputStreamWriter:字符输入输出流:

针对字符操作的输入输出流,可以直接读、写字符串。

InputStreamReader isr = new InputStreamReader(new FileInputStream(new File("path")));

OutputStreamWriter osw = new OutputStreamWriter (new FileOutputStream (new File("path")));

四)FileReader/FileWriter:字符输入输出流:它们是InputStreamReader/OutputStreamWriter的子类,功能更加的强大

这两个是对字符操作的流,我们不需要像操作字节那样子,读取字符和写入字符而要自己去一系列烦琐的操作,真的就可以读写。方便快捷。

FileReader fr = new FileReader(new FileInputStream(new File("path")));

FileWriter fw = new FileWriter(new FileOutputStream (new File("path")));

注意,FileWriter 还有一个很重要的功能就是,可以从文件末尾对文件内容的追加,只要在创建这个对象时,设置一下即可,如下:

FileWriter fw = new FileWriter(new FileOutputStream (new File("path")),true);//为true时,表示从文件末尾追加内容。

五)BufferReader/BufferWriter:具有缓冲的字符输入输出流:

它们也是对字符操作的高级流,它能一次性写入很多的内容,从而达到高效的目的,相当于数据库的的批处理一样。

BufferedReader br = new BufferedReader(new FileReader(new FileInputStream(new File("path"))));

BufferedWriter bw = new BufferedWriter(new FileWriter(new FileOutputStream (new File("path"))));

六)PrintWriter 打印输出流:也是一个高级流,用于打印,比较方便,其最大的特色就是可以设置自动刷新功能。还有格式化打印

PrintWriter pw = new PrintWriter(new FileOutputWriter(new FileOutputStream (new File("path"))));

最后,有一点要提醒大家,流一定记得要关闭,这样子才能释放资源,所以关闭流的操作最好放在finally中去操作。



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。