IO流

IO流

1、IO流分类:

  根据流向分:

    输入流  读取数据  FileReader  Reader

    输出流  写出数据  FileWriter    Writer

  根据数据类型分:

    字节流(直接写到文件中):

       字节输入流  读取数据  InputStream(抽象类)

                    FileInputStream ,BufferedInputStream,

       字节输出流  写出数据  OutputStream(抽象类)

                    FileOutputStream ,BufferedOutputStream,

    字符流(首先写到缓冲区):     

       字符输入流  读取数据  Reader

       字符输出流  写出数据  Writer

 字符流能实现的功能字节流都能实现,反之不一定。如:图片,视频等二进制文件,只能使用字节流读写。

2、使用字符流读写文本文件:

 1 import java.io.File;
 2 import java.io.FileReader;
 3 import java.io.FileWriter;
 4 import java.io.IOException;
 5 
 6 public class FlieCopy {
 7     public static void main(String[] args) throws IOException {
 8         File f=new File("C:\Users\Administrator\Desktop\Test\a.txt");
 9         f.createNewFile();
10         FileWriter fw=new FileWriter("C:\Users\Administrator\Desktop\Test\a.txt");
11         fw.write("床前明月光,
疑是地上霜;
举头望明月,
低头思故乡");
12         fw.flush();
13         FileReader fr=new FileReader("C:\Users\Administrator\Desktop\Test\a.txt");
14         fw.close();
15         fw=new FileWriter("C:\Users\Administrator\Desktop\Test\c.txt");
16         int len=0;
17         char[] chs=new char[1024];
18         while((len=fr.read(chs))!=-1) {
19             fw.write(chs,0,len);
20         }
21         
22         fr.close();
23         fw.close();
24     }
25 }

3、使用字节流复制图片

 1 import java.io.FileInputStream;
 2 import java.io.FileOutputStream;
 3 import java.io.IOException;
 4 
 5 public class CopImg {
 6     public static void main(String[] args) throws IOException {
 7         FileInputStream fin=new FileInputStream("C:\Users\Administrator\Desktop\Img.jpg");
 8         FileOutputStream fout=new FileOutputStream("C:\Users\Administrator\Desktop\ImgCopy.jpg");
 9         int len=0;
10         byte[] buff=new byte[1024];
11         while((len=fin.read(buff))!=-1) {
12             fout.write(buff, 0, len);
13         }
14         fin.close();
15         fout.close();
16     }
17 }
原文地址:https://www.cnblogs.com/hopeyes/p/9733479.html