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("床前明月光,\r\n疑是地上霜;\r\n举头望明月,\r\n低头思故乡");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 }