普及英文 buffer 字节 char 字符
分类方法
第一种: 字节流(以字节为单位进行读取)MP3什么的就只有字节,所以只能进行字节流 //最原始的数据InutStream OutputStream
字符流(以字符为单位进行读取操作)对文件什么的进行操作//Reader Writer 读出来的一个字符一个字符 两个字节
第二种: 节点流(普 通水管)
处理流(首先有普通水管,可以流淌各种数据,为水管添加额外的东西,可以对数据进行处理)
字节流: 抽象类(InputStream (读取) OutputStream(写入)) 注意:和两个类为抽象类需要子类去实现,常用的为FileInputStream和FileOutputStream
核心方法InputStream
int read(byte [] b ,int off,int len) 返回读取的字节数,如果是末位 则返回-1
第一个参数:读取的数据放在这
第二个数据:把b的前OFF位都空着 从第OFF+1位开始存放数据
第三个数据:读几位
OutputStream void write(byte [] b ,int off,int len) 在close前flush一下 一个习惯
FileInputStream iS =new FileinputStream();
byte [] buffer =new byte[100];
int temp = iS.read(buffer, 0,buffer.length);//把数据都读到了buffer中了 //temp可以判断读了多少字节
// for(int i =0;i<buffer.length;i++){
// System.out.println(buffer[i]);
// }
String s =new String(buffer);//可以还原成字符,生成字符串
s.trim();
System.out.println(s);
FileOutputStream oS =new FileOutputStream();
oS.write(buffer,0,temp);
大文件的操作: while(true){
int temp = iS.read(buffer, 0,buffer.length);
if(temp == -1){
break;
}
进行数据的操作。
}//思想为取一点操作一点,在读取一点。temp为-1的时候读取完了
字符流: 两个根本的抽象类,其他为其子类
字节输入流类:Reader(相当于与字节流的InputStream) 常用的为FileReader int read(char [] c,int off,int len)
字节输出流类:Writer (相当于与字节流的OutputStream)常用的为FileWriter int write(char [] c,int off,int len)
example: FileReader fr = null;
FileWrite fw = null;
try{
fr = new FileReader("")
char [] buffer =new char [100];
int temp = fr.read(buffer , 0 ,buffer.length)
//此时数据已经在buffer中
fw.write(buffer,0,temp)
}catch(){}finally文件的关闭}.......//大文件读取和字节流同样的道理
处理流:BufferedReader 方法:public String readLine() throws IOException
Example: BufferedReader in = new BufferedReader(newfileReadaer(“”))
//Stringline =in.readLine();
While(true){
Line =in.readLine() ;
If(line == null)
break;
//对当前的line进行操作
}
BufferWriter可以写一行 之后newLine一下换行
其实BufferReader就是一个装饰者,装饰下fileReader这个节点流,而BufferReader就是处理流了。
在原有节点流的基础上加上了新的功能 ,就是这个readLine一次读取一行的功能。
常见处理流:
BufferedInputStream,BufferedOutputStream //带缓冲区的流
BufferReader BufferWriter //直接读取一行的内容
inputStreamReader OutputStreamWriter //将字节流当成字符流来处理,给以一个自己喜欢的编码方式,也可以写入字符串 (键盘输入为字节,一般要变成字符来用)
DataInputStream DataOutputStream 数据流//套接在inputStrean和outputStream上 readBoolean() readByte() readUTF()字符串 等方法 对应write
PrintWriter PrintStream //打印流 有一个很好的方法叫println 但是这个只有在输出的时候才有 会自动flush 打到文件中去