Java IO(二):IO流——处理流——缓冲流
2016-08-13 14:20
344 查看
IO流——处理流——缓冲流
1.节点流与处理流的关系:
节点流处于IO操作的第一线,所有操作必须通过他们进行。处理流可以对其他流进行处理(提高效率或操作灵活性),处理流在节点流之上。
2.缓冲流:
(1)字节缓冲流
BufferedInputStream
BufferedOutputStream
(2)字符缓冲流
BufferedReader readLine()
BufferedWriter newLine()
1.节点流与处理流的关系:
节点流处于IO操作的第一线,所有操作必须通过他们进行。处理流可以对其他流进行处理(提高效率或操作灵活性),处理流在节点流之上。
2.缓冲流:
(1)字节缓冲流
BufferedInputStream
BufferedOutputStream
/** * 字节流文件的拷贝+缓冲流 * @param srcPath * @param destPath * @throws IOException */ public static void copyFile(String srcPath, String destPath) throws IOException{ //1、建立联系 源(存在且为文件) + 目的地(文件可以不存在) File src = new File(srcPath); File dest = new File(destPath); if (!src.isFile()) { System.out.println("不是文件"); throw new IOException("只能拷贝文件"); } //2、选择流 InputStream inputStream = new BufferedInputStream(new FileInputStream(src)); OutputStream outputStream = new BufferedOutputStream(new FileOutputStream(dest)); //3、文件拷贝 循环+读取+写出 byte[] flush = new byte[1024]; int len = 0; //读取 while (-1 != (len = inputStream.read(flush))) { //写出 outputStream.write(flush,0,len); } outputStream.flush(); //强制刷出 //4、释放资源 关闭流 outputStream.close(); inputStream.close(); }
(2)字符缓冲流
BufferedReader readLine()
BufferedWriter newLine()
public static void main(String[] args) { //1.创建源 File src = new File("D:/IOtest/demo.txt"); File dest = new File("D:/IOtest/char.txt"); //2.选择流 BufferedReader reader = null; BufferedWriter writer = null; try { reader = new BufferedReader(new FileReader(src)); writer = new BufferedWriter(new FileWriter(dest)); //读取操作 /* char[] flush = new char[1024]; int len = 0; while (-1 != (len=reader.read(flush))) { writer.write(flush,0,len); } */ //新增方法,使用新增方法不能产生多态 String line = null; while (null != (line=reader.readLine())) { writer.write(line); writer.newLine(); //换行 } writer.flush();//强制刷出 } catch (FileNotFoundException e) { e.printStackTrace(); System.out.println("源文件不存在"); } catch (IOException e) { e.printStackTrace(); System.out.println("文件读取失败"); } finally { if (writer != null) { try { writer.close(); } catch (IOException e) { e.printStackTrace(); } } if (null != reader) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } }
相关文章推荐
- 【Java.IO】I/O 【字节/字符】【处理流】 - 之 - 【缓冲流 】- Buffered*
- Java基础-IO流、FlieWriter和IO异常的处理方式
- Java基础之IO流,创建文件并写入内容与IO异常的标准处理方法
- Java IO(二):IO流——处理流——转换流
- JAVA之IO流(超详细的Java.io包的介绍!)
- Tomcat:IOException while loading persisted sessions: java.io.EOFException异常处理
- 彻底明白Java的IO系统(文摘)---JAVA之精髓IO流
- 彻底明白Java的IO系统(文摘)---JAVA之精髓IO流
- 彻底明白Java的IO系统---JAVA之精髓IO流
- Java基础之IO流处理
- 必读:彻底明白Java的IO系统---JAVA之精髓IO流!
- 彻底明白Java的IO系统(文摘)---JAVA之精髓IO流
- 彻底明白Java的IO系统(文摘)---JAVA之精髓IO流
- 必读:彻底明白Java的IO系统---JAVA之精髓IO流!
- 必读:彻底明白Java的IO系统---JAVA之精髓IO流!
- Tomcat:IOException while loading persisted sessions: java.io.EOFException异常处理
- 彻底明白Java的IO系统(文摘)---JAVA之精髓IO流
- 彻底明白Java的IO系统(文摘)---JAVA之精髓IO流
- 今天发现一个Java的关于java.io.File在处理com1到com9为文件名的Bug.
- Tomcat:IOException while loading persisted sessions: java.io.EOFException异常处理