真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JavaIO流之字符緩沖流實(shí)例詳解

字符流:

成都創(chuàng)新互聯(lián)公司是一家專(zhuān)業(yè)提供蕭山企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、html5、小程序制作等業(yè)務(wù)。10年已為蕭山眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

1、加入字符緩存流,增強(qiáng)讀取功能(readLine)

2、更高效的讀取數(shù)據(jù)

BufferedReader

從字符輸入流讀取文本,緩沖各個(gè)字符,從而實(shí)現(xiàn)字符、數(shù)組和行的高效讀取。   

FileReader:內(nèi)部使用InputStreamReader,解碼過(guò)程,byte->char,默認(rèn)緩存大小為8k

BufferReader:默認(rèn)緩存大小為8k,但可以手動(dòng)指定緩存大小,把數(shù)據(jù)讀取到緩存中,減少每次轉(zhuǎn)換過(guò)程,效率更高

/字符輸入緩沖流
	private static void charReader() {
		//目標(biāo)文件
		File file = new File("F:\\javatest\\lemon1.txt");
		try {
			//字符流
			Reader reader = new FileReader(file);
			//為字符流提供緩沖,已達(dá)到高效讀取的目的
			BufferedReader bufr = new BufferedReader(reader);
			
			char[] chars = new char[1024];
			int len = -1;
			while((len = bufr.read(chars)) != -1) {
				System.out.println(new String(chars,0,len));
			}
      bufr.close();
				
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

BufferedWriter

將文本寫(xiě)入字符輸出流,緩沖各個(gè)字符,從而提供單個(gè)字符、數(shù)組和字符串的高效寫(xiě)入

FileWriter:內(nèi)部使用InputStreamWriter,解碼過(guò)程,byte->char,默認(rèn)緩存大小為8k

BufferWriter:默認(rèn)緩存大小為8k,但可以手動(dòng)指定緩存大小,把數(shù)據(jù)讀取到緩存中,減少每次轉(zhuǎn)換過(guò)程,效率更高

//字符輸出緩存流
	private static void charWriter() {
		//目標(biāo)文件
		File file = new File("F:\\javatest\\lemon1.txt");
		try {
			//字符流
			Writer writer = new FileWriter(file,true);//追加
			//為字符流提供緩沖,已達(dá)到高效讀取的目的
			BufferedWriter bufr = new BufferedWriter(writer);
			bufr.write("這里是字符緩沖流\r\n");
			bufr.flush();
			bufr.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

總結(jié):

package com.lemon;
 
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Writer;
/**
 * 緩存的目的:
 * 解決在寫(xiě)入文件操作時(shí),頻繁的操作文件所帶來(lái)的性能降低問(wèn)題
 * BufferedOutputStream內(nèi)部默認(rèn)的緩存大小是8kb,每次寫(xiě)入時(shí)存儲(chǔ)到緩存中的byte數(shù)組中,當(dāng)數(shù)組存滿(mǎn)時(shí),會(huì)把數(shù)組中的數(shù)據(jù)寫(xiě)入文件
 * 并且緩存下標(biāo)歸零 
 * 
 * 字符流:
 * 1、加入字符緩存流,增強(qiáng)讀取功能(readLine)
 * 2、更高效的讀取數(shù)據(jù)
 * FileReader:內(nèi)部使用InputStreamReader,解碼過(guò)程,byte->char,默認(rèn)緩存大小為8k
 * BufferReader:默認(rèn)緩存大小為8k,但可以手動(dòng)指定緩存大小,把數(shù)據(jù)讀取到緩存中,減少每次轉(zhuǎn)換過(guò)程,效率更高
 * BufferedWriter:同上
 * @author lemonSun
 *
 * 2019年5月4日下午8:12:53
 */
public class BufferStreamDemo {
 
	public static void main(String[] args) {
	//	byteWriter();
	//	byteReader();
//		byteReader1();
//		charReader();
		charWriter();
	}
	
	//字符輸出緩存流
	private static void charWriter() {
		//目標(biāo)文件
		File file = new File("F:\\javatest\\lemon1.txt");
		try {
			//字符流
			Writer writer = new FileWriter(file,true);//追加
			//為字符流提供緩沖,已達(dá)到高效讀取的目的
			BufferedWriter bufr = new BufferedWriter(writer);
			bufr.write("這里是字符緩沖流\r\n");
			bufr.flush();
			bufr.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	
	//字符輸入緩存流
	private static void charReader() {
		//目標(biāo)文件
		File file = new File("F:\\javatest\\lemon1.txt");
		try {
			//字符流
			Reader reader = new FileReader(file);
			//為字符流提供緩沖,已達(dá)到高效讀取的目的
			BufferedReader bufr = new BufferedReader(reader);
			
			char[] chars = new char[1024];
			int len = -1;
			while((len = bufr.read(chars)) != -1) {
				System.out.println(new String(chars,0,len));
			}
			bufr.close();
				
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	
	//緩存流輸入 不用關(guān)閉 try自動(dòng)關(guān)閉 必須實(shí)現(xiàn)Closeable接口
	private static void byteReader1(){
		//目標(biāo)文件
		File file = new File("F:\\javatest\\lemon1.txt");
		
		//buf作用域在try大括號(hào)里面多條語(yǔ)句try(;),;隔開(kāi) 
		try(BufferedInputStream buf = new BufferedInputStream(new FileInputStream(file))) {	
			byte[] bytes = new byte[1024];
			int len = -1;
			while((len = buf.read(bytes)) != -1) {
				System.out.println(new String(bytes,0,len));
			}
		
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
	
	//緩存流輸入
	private static void byteReader(){
		//目標(biāo)文件
		File file = new File("F:\\javatest\\lemon1.txt");
		
		try {
			//字節(jié)輸出流
			InputStream in = new FileInputStream(file);
			//字節(jié)緩沖流
			BufferedInputStream buf = new BufferedInputStream(in);
			byte[] bytes = new byte[1024];
			int len = -1;
			while((len = buf.read(bytes)) != -1) {
				System.out.println(new String(bytes,0,len));
			}
			buf.close();//自動(dòng)關(guān)閉 in.close
		
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
	
	
	//緩存流輸出
	private static void byteWriter(){
		//目標(biāo)文件
		File file = new File("F:\\javatest\\lemon1.txt");
		
		try {
			//字節(jié)輸出流
			OutputStream out = new FileOutputStream(file,true);
			//緩沖流
			BufferedOutputStream buf = new BufferedOutputStream(out);
			//內(nèi)容
			String info = "這里是緩沖流\r\n";
			//寫(xiě)入
			buf.write(info.getBytes());
			buf.close(); //jdk1.7以后自動(dòng)關(guān)閉 out
		//	out.close();
				
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
 
}

以上所述是小編給大家介紹的Java IO流之字符緩沖流詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)創(chuàng)新互聯(lián)網(wǎng)站的支持!


文章標(biāo)題:JavaIO流之字符緩沖流實(shí)例詳解
路徑分享:http://weahome.cn/article/jdspeh.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部