欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

字符流:

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

2、更高效的讀取數據

BufferedReader

從字符輸入流讀取文本,緩沖各個字符,從而實現字符、數組和行的高效讀取。   

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

BufferReader:默認緩存大小為8k,但可以手動指定緩存大小,把數據讀取到緩存中,減少每次轉換過程,效率更高

/字符輸入緩沖流
	private static void charReader() {
		//目標文件
		File file = new File("F:\\javatest\\lemon1.txt");
		try {
			//字符流
			Reader reader = new FileReader(file);
			//為字符流提供緩沖,已達到高效讀取的目的
			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

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

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

BufferWriter:默認緩存大小為8k,但可以手動指定緩存大小,把數據讀取到緩存中,減少每次轉換過程,效率更高

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

總結:

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內部默認的緩存大小是8kb,每次寫入時存儲到緩存中的byte數組中,當數組存滿時,會把數組中的數據寫入文件
 * 并且緩存下標歸零 
 * 
 * 字符流:
 * 1、加入字符緩存流,增強讀取功能(readLine)
 * 2、更高效的讀取數據
 * FileReader:內部使用InputStreamReader,解碼過程,byte->char,默認緩存大小為8k
 * BufferReader:默認緩存大小為8k,但可以手動指定緩存大小,把數據讀取到緩存中,減少每次轉換過程,效率更高
 * 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() {
		//目標文件
		File file = new File("F:\\javatest\\lemon1.txt");
		try {
			//字符流
			Writer writer = new FileWriter(file,true);//追加
			//為字符流提供緩沖,已達到高效讀取的目的
			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() {
		//目標文件
		File file = new File("F:\\javatest\\lemon1.txt");
		try {
			//字符流
			Reader reader = new FileReader(file);
			//為字符流提供緩沖,已達到高效讀取的目的
			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();
		}
	}
	
	
	//緩存流輸入 不用關閉 try自動關閉 必須實現Closeable接口
	private static void byteReader1(){
		//目標文件
		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(){
		//目標文件
		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();//自動關閉 in.close
		
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
	
	
	//緩存流輸出
	private static void byteWriter(){
		//目標文件
		File file = new File("F:\\javatest\\lemon1.txt");
		
		try {
			//字節(jié)輸出流
			OutputStream out = new FileOutputStream(file,true);
			//緩沖流
			BufferedOutputStream buf = new BufferedOutputStream(out);
			//內容
			String info = "這里是緩沖流\r\n";
			//寫入
			buf.write(info.getBytes());
			buf.close(); //jdk1.7以后自動關閉 out
		//	out.close();
				
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
 
}

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

相關文章

  • 淺談Java8對字符串連接的改進正確姿勢

    淺談Java8對字符串連接的改進正確姿勢

    這篇文章主要介紹了Java8:對字符串連接的改進,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • 新手初學Java的內部類

    新手初學Java的內部類

    這篇文章主要介紹了java內部類原理與用法,結合實例形式分析了Java內部類的概念、原理、分類及相關使用技巧,需要的朋友可以參考下,希望能給你帶來幫助
    2021-07-07
  • Java實現簡易五子棋小游戲

    Java實現簡易五子棋小游戲

    這篇文章主要為大家詳細介紹了Java實現簡易五子棋小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 教你如何輕松學會Java快慢指針法

    教你如何輕松學會Java快慢指針法

    要想把搬磚的效率提高,我們肯定是逃不掉數據結構和算法知識的,這不,可愛的小編今天就和大家一起學習來了,今天給大家分享的是快慢指針,那啥是快慢指針呢,文中有非常詳細的解釋,需要的朋友可以參考下
    2021-06-06
  • Mybatis #foreach中相同的變量名導致值覆蓋的問題解決

    Mybatis #foreach中相同的變量名導致值覆蓋的問題解決

    本文主要介紹了Mybatis #foreach中相同的變量名導致值覆蓋的問題解決,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • java 文件目錄讀寫刪除操作詳細實現代碼

    java 文件目錄讀寫刪除操作詳細實現代碼

    這篇文章主要介紹了java 文件讀寫刪操作詳細實現代碼,需要的朋友可以參考下
    2017-09-09
  • Spring中@Repository注解的作用和用法以及和@Mapper的區(qū)別詳析

    Spring中@Repository注解的作用和用法以及和@Mapper的區(qū)別詳析

    這篇文章主要給大家介紹了關于Spring中@Repository注解的作用和用法以及和@Mapper的區(qū)別的相關資料,注解的作用是標識一個類為數據訪問對象,并由Spring框架進行實例化和管理,需要的朋友可以參考下
    2023-09-09
  • 深入淺析Java 循環(huán)中標簽的作用

    深入淺析Java 循環(huán)中標簽的作用

    這篇文章主要介紹了深入淺析Java 循環(huán)中標簽的作用的相關資料,需要的朋友可以參考下
    2016-02-02
  • 使用IntelliJ IDEA調式Stream流的方法步驟

    使用IntelliJ IDEA調式Stream流的方法步驟

    本文主要介紹了使用IntelliJ IDEA調式Stream流的方法步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 解決Mybatis返回update后影響的行數問題

    解決Mybatis返回update后影響的行數問題

    這篇文章主要介紹了解決Mybatis返回update后影響的行數問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11

最新評論