Java開發知識之JavaIO操作緩存操作


帶緩存的輸入/輸出流

一丶簡介

緩存是I/O的一種性能優化.緩存流為 I/O 流增加了內存緩存區.有了緩存區,那么在流上執行 skip().mark() reset()方法,都成為可能.
總來的來說其實就是通過緩存讀寫.執行效率更高,更快.

二丶BufferedInputStream 與 BufferedOutputString類.

  • BufferedInputString(InputStream in)可以對所有InputString類進行帶緩存的包裝,達到性能優化.

1.兩種構造方法


第一種: 傳入一個InPutStream類的實現類對他做包裝,帶有32個字節的緩存.
第二種: 指定一個大小.
比如讀取文件,BufferdInputStream對象位於InputStream類對象之前.

2.BufferOutputStream類.

1.構造方法

使用BufferdOutputStream輸出信合和用OutputStream輸出信息一樣.只不過BufferedOutputStream有一個flush方法,用來將緩存區的數據強制輸出玩.

只不過翻過來了,第一種就是構造32個字節緩存.第二個指定大小.創建.

-針對BufferedInputStream做包裝實例

	private static void File() throws Exception {
		// TODO 自動生成的方法存根
		File f = new File("1.txt");//創建一個文件
		InputStream in = new FileInputStream(f);
		BufferedInputStream inn = new BufferedInputStream(in);//對in做包裝
		byte[] a = new byte[10];
		inn.read(a);//利用緩沖區讀取
		
		System.out.println(Arrays.toString(a));//輸出字節數組內容.
		System.out.println(new String(a));	   //字節數組,轉為字符串顯示.

		
	}

輸出結果.

BufferedOutputStream類實例

	private static void File() throws Exception {
		// TODO 自動生成的方法存根
		File f = new File("1.txt");//創建一個文件
		InputStream in = new FileInputStream(f);
		OutputStream out = new FileOutputStream(f);
		BufferedOutputStream outBuf = new BufferedOutputStream(out);
		outBuf.write(new String("HelloWroldssss sdfsdfsdf").getBytes());
		outBuf.flush();
		outBuf.close();
	}

文件中的結果

三丶BufferedReader類與BufferedWriter類

我們曾經說過,Java是Unicode字節集.所以字節讀取可能出現錯誤.
然后針對這種錯誤,出現了Reader類以及Writer類.而緩沖流也針對這兩個類實現了.就是上面所說的類.也就是內部緩存類.
用法跟上面的BufferedInputStream類一樣.

1.BufferedReader緩存類的使用介紹.

-1.文件讀取流程

提供的方法

代碼例子

	private static void File() throws Exception {
		// TODO 自動生成的方法存根
		File f = new File("1.txt");//創建一個文件
		Writer wfile = new FileWriter(f); //創建寫文件UNICODE形式.
		BufferedWriter wBufferFile = new BufferedWriter(wfile);//對寫文件創建緩沖區.
		String str[] = {"今天","你","學習了嗎"};
		//寫入文件
		for(int i = 0; i < str.length;i++) {
			wBufferFile.write(str[i]);//循環寫入
			wBufferFile.flush();
		}
		wBufferFile.close();
		
	}

實現結果

四丶數據輸入/輸出流

數據輸入輸出流(DataInputStream與DataOutputStream)允許應用程序與機器無關的方式,從底層輸入流中讀取基本的java數據類型,也就是說,當讀取一個數據的時候,不用關心這個數值應該是那種字節了.

1.構造以及常用方法


java是Unicode編碼.上字節.writebytes知識將字符中的每一個字符的低字節內容寫到目標設備
writeChars將字符串中的兩個字節內容寫到目標設備
writeUtf則是按照UTF方式寫入到目標設備.

輸入流,提供了ReadUTF()用於讀取,並且返回字符串.
例子:

	private static void File() throws Exception {
		// TODO 自動生成的方法存根
		File f = new File("1.txt");//創建一個文件
		OutputStream wfile =new FileOutputStream(f); //創建寫文件UNICODE形式.
		DataOutputStream out = new DataOutputStream(wfile);
		String str[] = {"今天","你","學習了嗎"};
		//寫入文件
		out.writeChars("今");
		out.close();
		
	}

總結

其實都是對輸入輸出流做的緩存封裝,在流上封裝了新的方法.讀取數據.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM