----------------------
ASP.Net+Unity开发、
.Net培训、期待与您交流! ----------------------
先在D盘根目录下建立一个test.jpg,再执行这段代码试试看吧!!
浅谈IO流
IO流是Java控制数据输入输出的重要手段,分为字节流和字符流。
字节流是按数据最基本的单位--字节,控制数据的输入输出,可以应对字符文本、影音媒体、图片等常规文件的操作,包括创建、复制、修改、删除等。
字符流是为了处理不同编码之间文本的识别而单独打造出来的流。用字符流处理文本得心应手、手到擒来!
常用的IO类
字节流
FileInputStream
FileOutputStream
BufferedInputStream
BufferedOutputStream
字符流
FileReader
FileWriter
BufferedReader
BufferedWriter
每一种流对应了四个类,这几个类都有什么作用呢?实际敲代码测试就是最好的老师!
public static void copyFile() throws IOException
{
FileInputStream fis = new FileInputStream("D:\\test.jpg") ;
FileOutputStream fos = new FileOutputStream("D:\\test_copy.jpg") ;
BufferedInputStream bufis = new BufferedInputStream(fis) ;
BufferedOutputStream bufos = new BufferedOutputStream(fos) ;
int b = 0 ;
while((b=bufis.read()) != -1)
{
bufos.write(b) ;
}
bufis.close();
bufos.close();
}
先在D盘根目录下建立一个test.jpg,再执行这段代码试试看吧!!
FileInputStream顾名思义,就是与目标文件建立流关系,此时已经可以进行读取操作,但是这时候的流是一个字节一个字节的去读,就犹如人要一滴一滴去喝杯里的水。
为了提高效率建立一个缓冲区,字节放到缓冲区以后一起读取。
<span style="color:#006600;">BufferedInputStream bufis = new BufferedInputStream(fis) ;这句的作用就是把流交道缓冲区手里。</span>
与Input对应的Output 都是一样的,只不过是功能变为输出
利用reand和write两个方法 通过循环就可以完成文件的复制
举一反三,字符流的操作也都是大同小异,几乎没有差别,从命名上(read和write)反而比字节流更容易理解。
今天学到了很重要的字节流和字符流,一个软件少不了对数据的操作,日后我会更多努力的发现和学习IO流的技术
欢迎大家互相交流互相学习,以上有不对的地方欢迎指正。
---------------------- ASP.Net+Unity开发、 .Net培训、期待与您交流! ----------------------