IO stream - character buffer stream

  • Copy text file

        –Read and write one character at a time

        –Read and write one character array at a time

Without parameters:

package com.demo03;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/*
 * 需求:
 * 		把项目路径下的FileWriterDemo.java中的内容复制到项目路径下的Copy.java中
 * 
 * 文件复制也是有规律可循的,也就是说有套路。
 * 
 * 数据源:
 * 		FileWriterDemo.java -- 读数据 -- FileReader
 * 目的地:
 * 		Copy.java -- 写数据 -- FileWriter
 */
public class CopyFileDemo {
	public static void main(String[] args) throws IOException {
		//创建输入流对象
		FileReader fr = new FileReader("c:\\zy.txt");
		//创建输出流对象
		FileWriter fw = new FileWriter("c:\\Copy.txt");
		
		//读写数据
		int ch;
		while((ch=fr.read())!=-1) {
			fw.write(ch);
		}
		
		//释放资源
		fw.close();
		fr.close();
	}
}

 With parameters:

package com.demo03;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/*
 * 需求:
 * 		把项目路径下的FileWriterDemo.java中的内容复制到项目路径下的Copy.java中
 * 
 * 数据源:
 * 		FileWriterDemo.java -- 读数据 -- FileReader
 * 目的地:
 * 		Copy.java -- 写数据 -- FileWriter
 */
public class CopyFileDemo2 {
	public static void main(String[] args) throws IOException {
		//创建输入流对象
		FileReader fr  = new FileReader("FileWriterDemo.java");
		//创建输出流对象
		FileWriter fw = new FileWriter("d:\\Copy.java");
		
		//读写数据
		char[] chs = new char[1024];
		int len;
		while((len=fr.read(chs))!=-1) {
			fw.write(chs, 0, len);
		}
		
		//释放资源
		fw.close();
		fr.close();
	}
}

character buffer stream

In real applications, we use this method of buffering streams to do it.

  • BufferedWriterBasic usage
  • Basic usage of BufferedReader
  • Character buffer stream copy text file
  • special function

        –BufferedWriter

                void newLine()

        –BufferedReader

                String readLine()

  • Character Buffered Stream Special Functions Copying Text Files

* BufferedWriter: writes text to the character output stream, buffering individual characters, thereby providing efficient writing of single characters, arrays, and strings.

* BufferedReader: Read text from the character input stream and buffer each character to achieve efficient reading of characters, arrays and lines.

package com.demo04;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/*
 * BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。 
 * BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
 */
public class BufferedStreamDemo {
	public static void main(String[] args) throws IOException {
		//创建输出缓冲流对象
		BufferedWriter bw = new BufferedWriter(new FileWriter("c://zy1.txt"));
		bw.write("hello");
		bw.flush();
		bw.close();
		
		
		//创建输入缓冲流对象
		BufferedReader br = new BufferedReader(new FileReader("c://zy.txt"));
		
		//一次读写一个字符
		int ch;
		while((ch=br.read())!=-1){
			System.out.print((char)ch);
		}
		
		
		//一次读写一个字符数组,多个字符的读取
		char[] chs = new char[1024];
		int len;
		while((len=br.read(chs))!=-1) {
			System.out.print(new String(chs,0,len));
		}
		
		//释放资源
		br.close();
		
	}
}

Use input and output buffer streams to copy files

package com.demo04;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/*
 * 需求:
 * 		把项目路径下的FileWriterDemo.java中的内容复制到项目路径下的Copy.java中
 * 
 * 数据源:
 * 		FileWriterDemo.java -- 读数据 -- FileReader -- 高效的读数据 -- BufferedReader
 * 目的地:
 * 		Copy.java -- 写数据 -- FileWriter -- 高效的写数据 -- BufferedWriter
 */
public class CopyFileDemo {
	public static void main(String[] args) throws IOException {
		//创建输入缓冲流对象
		BufferedReader br = new BufferedReader(new FileReader("c://zy.txt"));
		//创建输出缓冲流对象
		BufferedWriter bw = new BufferedWriter(new FileWriter("c://zhangyu.txt"));
		
		//读写数据
		int ch;
		
		//一次读写一个字符
		while((ch = br.read())!=-1) {
			bw.write(ch);
		}
		/*
		//一次读写一个字符数组
		char[] chs = new char[1024];
		int len;
		while((len=br.read(chs))!=-1) {
			bw.write(chs,0,len);
		}*/
		
		//释放资源
		bw.close();
		br.close();
	}
}

* Special functions of buffered streams:

* BufferedWriter

* void newLine(): Write a newline character, which is determined by the system

* BufferedReader

* String readLine(): Read one line of data at a time, but do not read newlines

bw.newLine() has the same effect as bw.write("\r\n")

package com.demo05;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

/*
 * 缓冲流的特殊功能:
 * BufferedWriter
 * 		void newLine():写一个换行符,这个换行符由系统决定
 * BufferedReader
 * 		String readLine():一次读取一行数据,但是不读取换行符
 */
public class BufferedStreamDemo {
	public static void main(String[] args) throws IOException {
		
		BufferedWriter bw = new BufferedWriter(new FileWriter("c://bw2.txt"));
		for(int x=0; x<10; x++) {
			bw.write("hello"+x);
			//bw.write("\r\n");
			bw.newLine();
			bw.flush();
		}
		bw.close();
		
		
		//BufferedReader br = new BufferedReader(new FileReader("br.txt"));
		
		/*
		String line = br.readLine();
		System.out.println(line);
		
		line = br.readLine();
		System.out.println(line);
		
		line = br.readLine();
		System.out.println(line);
		
		line = br.readLine();
		System.out.println(line);
		*/
		
		//String line;
		//1:br.readLine()
		//2:line=br.readLine()
		//3:line != null
		/*while((line=br.readLine())!=null) {
			System.out.println(line);
		}
		
		br.close();*/
	}
}

Guess you like

Origin blog.csdn.net/zywcxz/article/details/128839364