IO流
一 什么是流
流是用于连接程序和设备之间的管道,主要用于数据传输。这个管道上有很多的按钮,每个按钮可以实现不同的功能。
二 流的分类
四大基本抽象流(输入流、输出流、字节流、字符流)
文件流 缓冲流 转换流 数据流
Print流 Object流
字符流和字节流读取文本文件的区别
1.字符流
一次读取两个字符
import java.io.*;
public class Test{
public static void main(String[] args) throws Exception{
//read、input 输入流 write、output输出流
//read write 是字符流 input output 是字节流
FileReader wj=new FileReader("E:/java/aaa.txt");
int aa;//这里必须定义成整形,java规定read()函数的返回值是整形的
aa=wj.read();//读取一个字符
System.out.println("文件内容为:");
while(aa!=(-1)){//ASCII是从0开始的数字,只有什么都没有才会返回-1
System.out.print((char)aa);
aa=wj.read();
}
wj.close();
}
}
2.字节流
一次读取一个字节
import java.io.*;
public class Test{
public static void main(String[] args) throws Exception{
//read、input 输入流 write、output输出流
//read write 是字符流 input output 是字节流
FileInputStream wj=new FileInputStream("E:/java/aaa.txt");
int aa;
aa=wj.read();//读取一个字符
System.out.println("文件内容为:");
while(aa!=(-1)){
System.out.print((char)aa);
aa=wj.read();
}
wj.close();
}
}
二、其余格式文件用字节流
import java.io.*;
public class Test{
public static void main(String[] args) throws Exception{
//FileReader fz=new FileReader("E:/java/aaa.jpg"); //字符流复制不能使用
//FileWriter zt=new FileWriter("E:/aaa.jpg");
FileInputStream fz=new FileInputStream("E:/java/aaa.jpg");
FileOutputStream zt=new FileOutputStream("E:/aa.jpg");//字节流
int aa;
aa=fz.read();//读取一个字符
System.out.println("文件内容为:");
while(aa!=(-1)){
System.out.print((char)aa);
aa=fz.read();
}
zt.flush();//将流中残留内容全部输出,写在文件关闭之前
fz.close();
zt.close();
}
}