1. I/O流可以有三种分类方法.
第一, 输入流,输出流 .
第二, 字节流,字符流 .
第三, 节点流(真正直接处理数据的) ,处理流(装饰加工节点流的) .
2. 字节流
抽象类 <– 面向字节的文件流 .
InputStream <– FileInputStream
OutputStream <– FileOutputStream
常用方法
InputStream int read(byte [] c,int off, int len)
OutputStream voidwrite(byte [] c,int off, int len) .
3. 字符流
抽象类 <– 面向字符文件流 .
Reader <– FileReader
Writer <— FileWriter
常用方法
FileReader int read(char [] c,int off, int len)
FileWriter voidwrite(char [] c,int off, int len) .
4. 节点流和处理流
类
BufferdReader 可以称作字符、输入、处理流 .
方法
String readLine()
BufferdReader构造函数接受的是 Reader 类型的参数
4. Java中io类是典型的装饰者模式
5. 示例
import java.io.*;
public class Filerw{
public static void main (String args[]){
Filerw filerw=new Filerw();
//filerw.readAndWrite();
filerw.bufferReader();
}
/**
* 1.使用输入输出流操作文件
*/
public void readAndWriteStream(){
FileInputStream inStream=null;
FileOutputStream outStream=null;
try{
//生成一个输入流的对象
inStream=new FileInputStream(“e:/javapro/FileDemo/from.txt”);
//生成一个输入流的对象
outStream=new FileOutputStream(“e:/javapro/FileDemo/to.txt”);
byte[] buffer=new byte[1024];
int len=0;
//读取文件
len=inStream.read(buffer,0,buffer.length);
for(int i=0; i<len; i++){
System.out.print(buffer[i]);
}
//写入到文件
outStream.write(buffer,0,len);
}catch (Exception e){
System.out.print(e);
}finally{
try{
inStream.close();
outStream.close();
}catch (Exception e){
System.out.print(e);
}
}
}
/**
* 2.使用字节流操作文件
*/
public void readAndWrite(){
FileReader reader=null;
FileWriter writer=null;
try{
//生成一个字符输入流的对象
reader=new FileReader(“e:/javapro/FileDemo/from.txt”);
//生成一个字符输入流的对象
writer=new FileWriter(“e:/javapro/FileDemo/to.txt”);
char[] buffer=new char[1024];
int len=0;
//读取文件
len=reader.read(buffer,0,buffer.length);
for(int i=0; i<len; i++){
System.out.print(buffer[i]);
}
//写入到文件
writer.write(buffer,0,len);
}catch (Exception e){
System.out.print(e);
}finally{
try{
reader.close();
writer.close();
}catch (Exception e){
System.out.print(e);
}
}
}
/**
* 3.使用节点流和处理流操作文件
*/
public void bufferReader(){
FileReader reader=null;
BufferedReader bufferedReader=null;
try{
reader=new FileReader(“e:/javapro/FileDemo/fromlinetext.txt”);
bufferedReader=new BufferedReader(reader);
String line=null;
while((line=bufferedReader.readLine())!=null){
//line=bufferedReader.readLine();
System.out.println(line);
}
}catch (Exception e){
System.out.print(e);
}finally{
try{
reader.close();
bufferedReader.close();
}catch (Exception e){
System.out.print(e);
}
}
}
}