黑马程序员_IO流
2013-04-18 20:36
295 查看
------- android培训、java培训、期待与您交流! ----------
输入流指向JAVA程序内,亦即read操作。
输出流指向JAVA程序外,亦即write操作。
常用的流有字节流、字符流。
字节流操作的是字节、字符流操作的是字符。
字节流能操作所有类型的文件,而字符流只能操作字符组成的文件。
常用的子类
FileReader
高效包装类
BufferedReader
字符输出流 Writer
常用的子类
FileWriter
高效包装类
BufferedWriter
常用的子类
FileInputStream
高效包装类
BufferedInputStream
字节输出流 OutputStream
常用的子类
FileOutputStream
高效包装类
BufferedOutputStream
用于实现字节流到字符流的转换流
InputStreamReader
用于实现字符流到字节流的转换流
OutputStreamWriter
以上演示的是输入流的读操作。
输出流
高效包装流:
转换流:
//此处用字符流对象bis接收了是字节流的对象System.in
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//此处用字符流对象包裹了是字节流的对象System.out
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
char[] chs = new char[1024];
int len=0;
while((len=br.read(chs))!=-1){
bw.write(chs,0,len);
bw.flush();
}
bw.close();
br.close();
2、close()方法包含了flush()方法,所以关闭流时,会把缓冲区中现存的数据刷新。
3、高效包装流是采用装饰设计模式作成的流,它的代码中不会直接完成读、写等基本操作功能,而是采用多态调用相应的流的方法来完成功能。
IO流
输入和输出功能的实现。主要分为input(输入)和output(输出)。输入流指向JAVA程序内,亦即read操作。
输出流指向JAVA程序外,亦即write操作。
常用的流有字节流、字符流。
字节流操作的是字节、字符流操作的是字符。
字节流能操作所有类型的文件,而字符流只能操作字符组成的文件。
字符流
字符输入流 Reader常用的子类
FileReader
高效包装类
BufferedReader
字符输出流 Writer
常用的子类
FileWriter
高效包装类
BufferedWriter
字节流
字节输入流 InputStream常用的子类
FileInputStream
高效包装类
BufferedInputStream
字节输出流 OutputStream
常用的子类
FileOutputStream
高效包装类
BufferedOutputStream
转换流
转换流是字符流和字节流的桥梁,实现二者之间的转换。用于实现字节流到字符流的转换流
InputStreamReader
用于实现字符流到字节流的转换流
OutputStreamWriter
流的常用方法
输入流:FileInputStream fis = new FileInputStream(srcFile); byte[] buf = new byte[1024]; while(fis.read(buf))!=1){ 写的操作 } fis.close();
以上演示的是输入流的读操作。
输出流
FileOutputStream fos = new FileOutputStream(descFile); byte[] buf=new byte[1024]; while(fis.read()!=-1){ fos.write(buf); } fos.close();
高效包装流:
BufferedInputStream bis = new BufferedInputStream(fis); BufferedOutputStream bos = new BufferedOutputStream(fos); byte[] buf = new byte[1024]; while(bis.read())!=-1){ bos.write(buf); } bos.close();
转换流:
//此处用字符流对象bis接收了是字节流的对象System.in
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//此处用字符流对象包裹了是字节流的对象System.out
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
char[] chs = new char[1024];
int len=0;
while((len=br.read(chs))!=-1){
bw.write(chs,0,len);
bw.flush();
}
bw.close();
br.close();
注意事项
1、如果写入单个字符,记得需要使用flush()来刷新缓冲区,否则数据不会被写入文件。2、close()方法包含了flush()方法,所以关闭流时,会把缓冲区中现存的数据刷新。
3、高效包装流是采用装饰设计模式作成的流,它的代码中不会直接完成读、写等基本操作功能,而是采用多态调用相应的流的方法来完成功能。
相关文章推荐
- 黑马程序员_<<IO流基本操作(Writer,Reader)>>
- 黑马程序员_io流的理解
- 黑马程序员---------------IO流
- 黑马程序员——JAVA语言加强部分——IO流
- 黑马程序员 java学习笔记——IO流3
- 黑马程序员_IO流_FileReader类和FileWriter类
- 黑马程序员——IO流(BufferedWriter和BufferedReader)
- 黑马程序员——————IO流(二)_File类、其他流
- 黑马程序员----IO流(二)
- 黑马程序员-7-java-IO流知识点串讲(1)-IO流概念及字符流Writer、Reader
- 黑马程序员——Java之IO流(2)
- 黑马程序员-JAVA基础-IO流中的装饰设计模式
- 黑马程序员——java-IO流概念总结
- 黑马程序员—IO流
- 黑马程序员_Java基础_IO流(File类和properties类相关操作)
- 黑马程序员学习(九) IO流的一般使用原则
- 黑马程序员_day18 其他对象和IO流)
- 黑马程序员__关于学习IO流字符流的缓冲区总结
- 黑马程序员---IO流-File类,递归
- 黑马程序员_IO流二(字符缓冲区,字节缓冲区,字节字符转换流)