IO_06_字节缓冲流/字符缓冲流

IO_06_字节缓冲流/字符缓冲流_第1张图片
bufferedInputStream和bufferedOutputStream是对字节的缓冲提高读写的操作。打个比喻,以前搬家是一字节字节的搬,称为蚂蚁搬家。然后我们用汽车搬1k的搬,很慢。然后我们用更大的汽车搬,我们只需要1k或8k的打包,当打包到8个包时,然后司机一下都搬走,这样是不用频繁的读写硬盘了,所以性能就有了提升。

		is = new BufferedInputStream(new FileInputStream(src)) ;
		os = new BufferedOutputStream(new FileOutStream(src));

以下完整代码

public class IOtest01 {
	public static void main(String[] args) throws FileNotFoundException {
		//1.创建源
		File src = new File("D:/WorkSpace/IO/src/io.txt");
		InputStream is = null;
		//2.选择流
		try {
			 is = new BufferedInputStream(new FileInputStream(src)) ;
			//3.操作(读取)
			 int temp;
				try {
					while ((temp=is.read())!=-1) {//结尾的结果等于-1
						System.out.print((char)temp);
					}
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			
			
		}finally{
			//4.释放资源 
			try {
				if (null!=is) { //如果 is没有就不存在释放
					is.close();
				}
				
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
	}

	
}

字符缓冲流
IO_06_字节缓冲流/字符缓冲流_第2张图片
BufferedReader&BufferedWriter的原理是一样的,上面的是提高字节性能,这是提高字符的性能。

字符输出流 加入 缓冲流 代码

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;

/*
 * 四个步骤:分段读取
 * 1.创建源 			选择房子
 * 2.选择流 			选择搬家公司
 * 3.操作     			选择用什么搬
 * 4.释放资源 		打发搬家公司
 */
public class IOtest02 {
	public static void main(String[] args) {
		//1.创建源
		File src = new File("D:/WorkSpace/IO/src/io.txt");
		BufferedReader reader = null;
		//2.选择流
		try {
			reader = new BufferedReader(new FileReader(src));
			//3.操作(逐行读取)
			
			String line =null;
				try {
					while ((line=reader.readLine())!=null) {//readLine 逐行读取
						//字节数组-->字符串
						System.out.println(line);
					}
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			//4.释放资源 
			try {
				if (null!=reader) { //如果 is没有就不存在释放
					reader.close();
				}
				
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
	}
}

字符输入 加入 缓冲流 代码

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/*
 * 四个步骤:分段读取
 * 1.创建源 			选择房子
 * 2.选择流 			选择搬家公司
 * 3.操作     			选择用什么搬
 * 4.释放资源 		打发搬家公司
 */
public class BufferedTest04 {
	public static void main(String[] args) throws IOException {
		//1.创建源
		File src = new File("src/test.txt");
		//2.选择流
		BufferedWriter writer = null;
		try {
			writer = new BufferedWriter(new FileWriter(src)); //如果是true在原有的后面加,如果是flass测是替换原有的
			//3.操作(写入)
			writer.append(" IO is so easy");
			writer.newLine(); //换行符
			writer.append("纯洁小美男");
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			try {
				writer.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}

	}
}

你可能感兴趣的:(IO)