最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java IO流之字符緩沖流實例詳解

 更新時間:2019年05月08日 10:34:58   作者:LemonSnm  
這篇文章主要介紹了Java IO流之字符緩沖流,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

字符流:

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

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

BufferedReader

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

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

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

/字符輸入緩沖流
	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

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

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

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

//字符輸出緩存流
	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;
/**
 * 緩存的目的:
 * 解決在寫入文件操作時,頻繁的操作文件所帶來的性能降低問題
 * BufferedOutputStream內(nèi)部默認(rèn)的緩存大小是8kb,每次寫入時存儲到緩存中的byte數(shù)組中,當(dāng)數(shù)組存滿時,會把數(shù)組中的數(shù)據(jù)寫入文件
 * 并且緩存下標(biāo)歸零 
 * 
 * 字符流:
 * 1、加入字符緩存流,增強(qiáng)讀取功能(readLine)
 * 2、更高效的讀取數(shù)據(jù)
 * FileReader:內(nèi)部使用InputStreamReader,解碼過程,byte->char,默認(rèn)緩存大小為8k
 * BufferReader:默認(rèn)緩存大小為8k,但可以手動指定緩存大小,把數(shù)據(jù)讀取到緩存中,減少每次轉(zhuǎn)換過程,效率更高
 * 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自動關(guān)閉 必須實現(xiàn)Closeable接口
	private static void byteReader1(){
		//目標(biāo)文件
		File file = new File("F:\\javatest\\lemon1.txt");
		
		//buf作用域在try大括號里面多條語句try(;),;隔開 
		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();//自動關(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";
			//寫入
			buf.write(info.getBytes());
			buf.close(); //jdk1.7以后自動關(guān)閉 out
		//	out.close();
				
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
 
}

以上所述是小編給大家介紹的Java IO流之字符緩沖流詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 使用springBoot中的info等級通過druid打印sql

    使用springBoot中的info等級通過druid打印sql

    這篇文章主要介紹了使用springBoot中的info等級通過druid打印sql,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java類庫BeanUtils組件使用方法及實例詳解

    Java類庫BeanUtils組件使用方法及實例詳解

    這篇文章主要介紹了Java類庫BeanUtils組件使用方法級實例詳解,需要的朋友可以參考下
    2020-02-02
  • 使用Eclipse創(chuàng)建Maven的Java WEB項目的兩種方式

    使用Eclipse創(chuàng)建Maven的Java WEB項目的兩種方式

    本文詳細(xì)介紹了如何在JDK 1.8、Maven 3.6.3和Eclipse 2017版本下創(chuàng)建Java Web項目,包括選擇archetype方式、配置Tomcat、設(shè)置為Web3.1、配置Maven編譯級別、修復(fù)Eclipse提示的錯誤、設(shè)置Maven源文件夾等步驟,需要的朋友可以參考下
    2024-11-11
  • Spring Security源碼解析之權(quán)限訪問控制是如何做到的

    Spring Security源碼解析之權(quán)限訪問控制是如何做到的

    Spring Security 中對于權(quán)限控制默認(rèn)已經(jīng)提供了很多了,但是,一個優(yōu)秀的框架必須具備良好的擴(kuò)展性,下面小編給大家介紹Spring Security源碼解析之權(quán)限訪問控制是如何做到的,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • 如何使用nexus在局域網(wǎng)內(nèi)搭建maven私服及idea的使用

    如何使用nexus在局域網(wǎng)內(nèi)搭建maven私服及idea的使用

    這篇文章主要介紹了如何使用nexus在局域網(wǎng)內(nèi)搭建maven私服及idea的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • Springboot的maven間接依賴的實現(xiàn)

    Springboot的maven間接依賴的實現(xiàn)

    這篇文章主要介紹了Springboot的maven間接依賴的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Springboot使用切面功能詳解

    Springboot使用切面功能詳解

    Spring?Boot?是一個基于Spring框架的項目,它簡化了基于Spring的應(yīng)用開發(fā),這篇文章主要介紹了?Spring?Boot?中的切面功能,需要的可以了解下
    2025-01-01
  • JAVA根據(jù)ip地址獲取歸屬地的實現(xiàn)方法

    JAVA根據(jù)ip地址獲取歸屬地的實現(xiàn)方法

    本文主要介紹了JAVA根據(jù)ip地址獲取歸屬地的實現(xiàn)方法,要通過Java程序獲取IP地址對應(yīng)的城市,需要借助第三方的IP地址庫,下面就來介紹一下,感興趣的可以了解一下
    2023-10-10
  • Java看完秒懂版熔斷和降級的關(guān)系

    Java看完秒懂版熔斷和降級的關(guān)系

    這篇文章主要介紹了Java熔斷和降級的關(guān)系,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • Java中時間戳的獲取和轉(zhuǎn)換的示例分析

    Java中時間戳的獲取和轉(zhuǎn)換的示例分析

    這篇文章主要介紹了Java中時間戳的獲取和轉(zhuǎn)換的示例分析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評論

铜川市| 宝坻区| 凤山市| 扶余县| 祁东县| 柘城县| 平原县| 垣曲县| 富顺县| 龙游县| 沽源县| 兰考县| 文水县| 沈丘县| 凤冈县| 西城区| 陇川县| 闵行区| 临夏县| 崇明县| 钟山县| 类乌齐县| 盈江县| 镇沅| 广东省| 拜泉县| 清远市| 唐山市| 根河市| 松原市| 商都县| 镇赉县| 嫩江县| 茌平县| 祁东县| 山东省| 庆元县| 永修县| 九龙城区| 酉阳| 炎陵县|