1. 程式人生 > >IO流(三):字元流及其緩衝流

IO流(三):字元流及其緩衝流

二、基本字元流 (一)OutputStreamWriter 1、構造方法
  • OutputStreamWriter(OutputStream out):根據預設編碼把位元組流的資料轉換為字元流
  • OutputStreamWriter(OutputStream out,String charsetName):根據指定編碼把位元組流資料轉換為字元流
2、方法 1)方法內容
  • public void write(int c):寫一個字元 
  • public void write(char[] cbuf):寫一個字元陣列 
  • public void write(char[] cbuf,int off,int len):寫一個字元陣列的一部分 
  • public void write(String str):寫一個字串*
  • public void write(String str,int off,int len):寫一個字串的一部分 
2)面試題:close() 和flush() 的區別? 
  • A:close():關閉流物件,但是先重新整理一次緩衝區。關閉之後,流物件不可以繼續再使用了。 
  • flush():僅僅重新整理緩衝區,重新整理之後,流物件還可以繼續使用。
<span style="font-family:Arial;font-size:18px;">	/*
	 * OutputStreamWriter的方法:
	 * public void write(int c):寫一個字元
	 * public void write(char[] cbuf):寫一個字元陣列
	 * public void write(char[] cbuf,int off,int len):寫一個字元陣列的一部分
	 * public void write(String str):寫一個字串
	 * public void write(String str,int off,int len):寫一個字串的一部分
	 * 
	 * 面試題:close()和flush()的區別?
	 * A:close()關閉流物件,但是先重新整理一次緩衝區。關閉之後,流物件不可以繼續再使用了。
	 * B:flush()僅僅重新整理緩衝區,重新整理之後,流物件還可以繼續使用。
	 */
	public void test2() throws IOException {
		// 建立物件
		OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("osw.txt",true));

		// 寫資料
		// public void write(int c):寫一個字元
		// osw.write('a');
		// osw.write(97);
		// 為什麼資料沒有進去呢?
		// 原因是:字元 = 2位元組
		// 檔案中資料儲存的基本單位是位元組。
		// void flush()

		// public void write(char[] cbuf):寫一個字元陣列
		// char[] chs = {'a','b','c','d','e'};
		// osw.write(chs);

		// public void write(char[] cbuf,int off,int len):寫一個字元陣列的一部分
		// osw.write(chs,1,3);

		// public void write(String str):寫一個字串
		 osw.write("我愛林青霞");

		// public void write(String str,int off,int len):寫一個字串的一部分
		osw.write("我愛林青霞", 2, 3);

		// 重新整理緩衝區
		osw.flush();
		// osw.write("我愛林青霞", 2, 3);

		// 釋放資源
		osw.close();
		// java.io.IOException: Stream closed
		// osw.write("我愛林青霞", 2, 3);
	}
</span>

相關推薦

IO字元及其緩衝

二、基本字元流 (一)OutputStreamWriter 1、構造方法 OutputStreamWriter(OutputStream out):根據預設編碼把位元組流的資料轉換為字元流OutputStreamWriter(OutputStream out,String charsetName):根據指

Java中,IO字元的過濾器

import java.io.*; /** *字元流的過濾器 BufferedReader ---->readLine 一次讀一行 BufferedWriter/PrintWriter ---->寫一行 */ public class BrAndBwO

Java中,IO字元

import java.io.*; /** * 字元流 1) 編碼問題 2)認識文字和文字檔案 java的文字(char)是16位無符號整數,是字元的unicode編碼(雙位元組編碼) 檔案是byte byte byte ...的資料序列 文字檔案是文字(char)序列

一站式學習Wireshark應用Wireshark IO圖形工具分析資料

基本IO Graphs: IO graphs是一個非常好用的工具。基本的Wireshark IO graph會顯示抓包檔案中的整體流量情況,通常是以每秒為單位(報文數或位元組數)。預設X軸時間間隔是1秒,Y軸是每一時間間隔的報文數。如果想要檢視每秒bit數或byte

從零開始學C++之IO類庫檔案的讀寫、二進位制檔案的讀寫、檔案隨機讀寫

#include <cassert>#include <iostream>#include <fstream>#include <string>using namespace std;struct Test {     int a;     int b; };i

Java IO 字節流與字符

length 相關操作 數組 new throws mce 存在 () put  Java的IO流分為字符流(Reader,Writer)和字節流(InputStream,OutputStream),字節流顧名思義字節流就是將文件的內容讀取到字節數組,然後再輸出到另一個文件

java 核心編程——IO之字符

sun logs printf file start ech read private per 1.字符流   1.1 所有文件的存儲都是字節的存儲,我們日常在磁盤上保存的其實並不是文件的字符,而是先把字符轉換成字節,再把這些字節儲存到磁盤。在讀取文件時,也是一個字節一個字

java筆記IO字元

字元流是什麼     * 字元流是可以直接讀寫字元的IO流     * 字元流讀取字元, 就要先讀取到位元組資料, 然後轉為字元. 如果要寫出字元, 需要把字元轉為位元組再寫出. //標準使用方法 public stati

Flink資料程式設計模型

前言 仍然是學概念,以下大部分是對官方doc的翻譯,但是也會有些個人的理解(主要是對比Spark),以及查詢的一些解決自己的一些疑惑相關資料。 從Flink 的資料流程式設計模型和分散式執行環境的基本概念開始學習會對您瞭解其他部分的文件有幫助,包括安裝以及程式設

【原創】從原始碼剖析IO快取--轉載請註明出處

一、BufferedInputStream 關於BufferedInputStream,首先我們要看一下,官方給予的對於BufferedInputStream這個類的備註: /** * A <code>BufferedInputStream</code> add

jdk8的新特性總結序列與並行

在上一篇文章中我們知道通過parallelStream方法可以獲得一個並行流,那麼什麼是並行流呢?並行流就是把內容分割成多個數據塊,每個資料塊對應一個流,然後用多個執行緒分別處理每個資料塊中的流。 java8中將並行進行了優化,我們可以很容易的對資料進行並行操作,Strea

大資料架構簡述處理、批處理、互動式查詢

我們將大資料處理按處理時間的跨度要求分為以下幾類     基於實時資料流的處理,通常的時間跨度在數百毫秒到數秒之間     基於歷史資料的互動式查詢,通常時間跨度在數十秒到數分鐘之間     複雜的批

目標檢測光opencv下光Farneback法

上節說到過的calcOpticalFlowPyrLK光流演算法,可以看到它實際上是一種稀疏特徵點的光流演算法,也就是說我們先找到那些(特徵)點需要進行處理,然後再處理,該節介紹下一個全域性性的密集光流演算法,也就是對每一個點都進行光流計算,函式為calcOpti

Java基礎之File類與IO

一、記憶體流 使用記憶體流的需求:         把一個網路上的圖片儲存到陣列中,但是圖片的大小不能確定,怎樣解決? 記憶體流主要用來操作記憶體 ByteArrayInputStream和ByteArrayOutputStream         輸入和輸出可以把檔案作為

IOFile和遞迴

<span style="font-family:Arial;font-size:18px;"> /* *建立功能: *public boolean createNewFile():建立檔案 如果存在這樣的檔案,就不建立了 *public boolean mkdir():建立資料夾 如

網絡最大最小割定理

ron ont 找到 轉載 所有 detail tps src 技術 轉載:https://blog.csdn.net/w417950004/article/details/50538948 割(CUT)是網絡中頂點的劃分,它把網絡中的所有頂點劃分成兩個頂點的集合源點S和匯

Flume NG原始碼分析使用Event介面表示資料

Flume NG有4個主要的元件: Event表示在Flume各個Agent之間傳遞的資料流 Source表示從外部源接收Event資料流,然後傳遞給Channel Channel表示對從Source傳遞的Event資料流的臨時儲存 Sink表示從Channel中接收儲存的Event

CSS布局學習 - Normal Flow 正常布局(官網直譯)

add mar pla png 分享圖片 解釋 現象 垂直 邊距 默認情況下,元素是如何布局? 首先,取得元素的內容,加上內邊距(padding),邊框(border),外邊距(margin)放在一個盒子中 - 這就是我們之前看到的盒子模型 默認情況下,塊級元素的內容寬

java基礎之I/O-------轉換

一.轉換流的概念: 轉換流即包裝流,可以使位元組流轉換成字元流,也可以字元流轉成位元組流。         二.位元組流轉字元流:                    1.InputStreamReader 是位元組流通向字元流的橋樑:它使用指定的 charset

跟我學 Java 8 新特性之 Stream 縮減操作

和前面兩篇文章一起服用,效果會更佳。通過對流API的基礎體驗Demo和關鍵知識點的講解,相信大家對流API都有一定的認識了,但是流API強大的功能,可不僅僅像前面兩篇文章中說的那樣簡單,大家應該注意到,在第二篇中,我對Stream介面進行介紹的時候,並沒有把他的全部方法都