IO流:
流(Stream):源于UNIX中的管道(pipe)的概念。在unix中,管道是一条不间断的字节流,用来实现程序间的通信,或读写外围设备,外部文件等。
IO流分为字节流和字符流
字节流是由字节组成的,字节流是最基本的,所有的InputStream和OutputStream的子类都是字节流,主要用在处理二进制数据,它是按字节处理的。
字符流是由字符组成的,java里的字符由两个字节组成,所有的Reader和Witerd的子类都是字符流,主要用在处理文本内容或特定字符
字节流的常用类:
InputStream,OutputStream
字符流的常用类:
Reader,Writer
实现文件复制的步骤:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Demo4 {
public static void main(String[] args) {
FileInputStream input = null;
FileOutputStream output = null;
int n =0;
try {
input = new FileInputStream("D://demo//demo.txt");
output = new FileOutputStream("D://demo//demo1.txt");
do {
try {
n = input.read();
output.write(n);
} catch (IOException e) {
e.printStackTrace();
}
}while(n!=-1);
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally {
try {
input.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
使用字符流进行文件读写:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class Demo8 {
public static void main(String[] args) {
BufferedWriter writer =null;
try {
writer = new BufferedWriter(new FileWriter("D://demo//demo1.txt",true));
writer.newLine();
writer.write("Hello");
writer.newLine();
writer.write("你好");
writer.flush();//冲刷缓冲区
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}