IO流之轉換流

一? 轉換流

1 OutputStreamWriter類

是字符流通向字節流的橋梁:

可使用指定的字符編碼表,將要寫入流中的字符編碼成字節。它的作用的就是,將字符串按照指定的編碼表轉成字節,在使用字節流將這些字節寫出去。

    public static void main(String[] args) throws IOException {//指定目的地FileOutputStream fos=new FileOutputStream("E:\\java\\UTF-8.txt",true);//創建轉換流OutputStreamWriter osw=new OutputStreamWriter(fos, "utf-8");osw.write("你好,小豬佩奇");osw.flush();//釋放資源(你自己new了誰,就關誰,先開的后關)
osw.close();fos.close();}

2 InputStreamReader類

是字節流通向字符流的橋梁:

它使用指定的字符編碼表讀取字節并將其解碼為字符。它使用的字符集可以由名稱指定或顯式給定,或者可以接受平臺默認的字符集。

    public static void main(String[] args) throws IOException {//獲取數據源FileInputStream fis=new FileInputStream("E:\\java\\UTF-8.txt");//創建轉換流InputStreamReader isr=new InputStreamReader(fis,"utf-8");//開始讀取int len=0;while((len=isr.read())!=-1){System.out.println((char)len);}//釋放資源
        isr.close();fis.close();}

注意:在讀取指定的編碼的文件時,一定要指定編碼格式,否則就會發生解碼錯誤,而發生亂碼現象。

3. 轉換流和子類的區別

發現有如下繼承關系:

OutputStreamWriter:

?????????????????? |--FileWriter:

InputStreamReader:

? ? ? ? ? ? ? ? ?|--FileReader;

一旦要指定其他編碼時,絕對不能用子類,必須使用字符轉換流。什么時候用子類呢?

條件:

1、操作的是文件。2、使用默認編碼。

總結:

字節--->字符 : 看不懂的--->看的懂的。? 需要讀。輸入流。 InputStreamReader

字符--->字節 : 看的懂的--->看不懂的。? 需要寫。輸出流。 OutputStreamWriter

轉載于:https://www.cnblogs.com/zzq123/p/10222154.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/278511.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/278511.shtml
英文地址,請注明出處:http://en.pswp.cn/news/278511.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Spring事務管理(三)-PlatformmTransactionManager解析和事務傳播方式原理

2019獨角獸企業重金招聘Python工程師標準>>> Spring在事務管理時,對事務的處理做了極致的抽象,即PlatformTransactionManager。對事務的操作,簡單地來說,只有三步操作:獲取事務,提交事務&#x…

div方框彎曲邊樣式_使用彎曲樣式編輯文本

div方框彎曲邊樣式Would you like a new Notepad replacement that incorporates the latest technologies while staying slim and fast? Text editors are usually bland, boring programs, but here’s a new one that makes your text come to life beautifully. 您是否想…

分布式鎖的幾種實現原理

分布式鎖主流有三種模式: 實現方式 功能要求 實現難度 學習成本 運維成本 MySQL 的方案借助表鎖/行鎖實現 滿足基本要求 不難 熟悉 小量OK、大量影響現有業務、1主多從架構,不方便擴容 通過 ZK 創建數據節點的方式實現 滿足要求 熟悉 ZK API 即可 需要學…

如何破解您忘記的Windows密碼

Here at How-To Geek, we’ve covered many different ways to reset your password for Windows—but what if you can’t reset your password? Or what if you’re using drive encryption that would wipe out your files if you changed the password? It’s time to cr…

sql語句練習50題(Mysql版)

表名和字段–1.學生表Student(s_id,s_name,s_birth,s_sex) –學生編號,學生姓名, 出生年月,學生性別–2.課程表Course(c_id,c_name,t_id) – –課程編號, 課程名稱, 教師編號–3.教師表Teacher(t_id,t_name) –教師編號,教師姓名–4.成績表Score(s_id,c_id,s_score) –學生編號…

OpenCV3 識別圖中表格-JAVA 實現

2019獨角獸企業重金招聘Python工程師標準>>> 關于 JAVA 學習 OpenCV 的內容,函數講解。內容我均整理在 GitHubd的OpenCV3-Study-JAVA OpenCV 3 識別圖中表格-Java 實現 1. 說明 網上大部分資料,都是針對 C的,python、java 的例子太…

內存泄露 體現在哪個數字上_Microsoft剛剛泄漏了一個新的開始菜單。 你喜歡哪個?...

內存泄露 體現在哪個數字上NTAuthority on TwitterTwitter上的NTAuthorityMicrosoft messed up today, releasing an internal build of Windows 10 to Windows Insiders. This build was never meant to see the light of day, but it features a new Start menu design—with…

簡述 Spring Cloud 是什么

很多同學都了解了Spring ,了解了 Spring Boot, 但對于 Spring Cloud 是什么還是比較懵逼的。 本文帶你簡單的了解下,什么是Spring Cloud。 Spring Cloud 是什么 從字面理解,Spring Cloud 就是致力于分布式系統、云服務的框架。 Spring Cloud …

js DOM節點

元素節點 4種方式獲取 var oDiv document.getElementById("box");        //通過Id獲取元素var oDiv document.getElementsByClassName("div")[0];   //通過類名獲取元素  --》[ 0 ] 必須寫var oDiv document.getElementsByTagName("…

python web scraping

2019獨角獸企業重金招聘Python工程師標準>>> 最近在看《Web Scraping with Python》,借此來熟悉Python2.7如何開始編程。 發現書上主要使用的 http://example.webscraping.com/ 網站有部分變化,書中的代碼有點無法對照使用,因此稍…

傅里葉變換的物理意義

用三角函數表示周期函數 傅里葉的相關理論始于下面假設:對于周期為1的信號$f(t)$,可以由不同頻率的三角函數組成, $f(t) \frac{a_0}{2}\displaystyle{\sum^{\infty}_{k1}}(a_kcos(2\pi kt)b_ksin(2\pi kt))$ 組成的基礎波形為一個信號對&…

天貓年度總結

2019獨角獸企業重金招聘Python工程師標準>>> 魯大師天貓工作總結 時間:2017年10月22日-1月30日 1、對代理商進行6大區域的劃分管理,有專門的客服指導。 2、加班費申請和車費報銷制度。 3、簡化了特權訂金2階段改成1階段,極大的方便…

因特網使用期限_Internet死亡時使用PC的其他方式

因特網使用期限Nothing is more annoying than getting your Internet connection shut down, due to weather, or perhaps forgetting to pay your bill. Let’s take a look at some ways you can be productive and entertained without the Internet. 沒有什么比由于天氣原…

【基礎操作】線性基詳解

線性基是一個奇妙的集合(我摘的原話) 這里以非 $OI$ 的角度介紹了線性基 基礎部分 模板題 給你 $n$ 個數的集合,讓你選出任意多個不重復的數,使得它們的異或和最大。 線性基是什么 我們稱集合 $B$ 是集合 $S$ 的線性基&#xff0c…

節省大量教科書的三種潛在風險方法

Photo by Sultry 攝影: Sultry You can always save money on textbooks by buying online, going ebook, or renting what you need. But there are riskier ways to save a buck that just may yield even greater payoff, such as getting the international or …

解決內網搭建本地yum倉庫。

2019獨角獸企業重金招聘Python工程師標準>>> 一、使用iso鏡像搭建本地yum倉庫; 1、掛載鏡像到/mnt目錄下: [rootDasoncheng ~]# mount /dev/cdrom /mnt mount: /dev/sr0 is write-protected, mounting read-only2、備份配置文件,并…

通過用 .NET 生成自定義窗體設計器來定制應用程序

本文討論: ? 設計時環境基本原理 ? 窗體設計器體系結構 ? Visual Studio .NET 中窗體設計器的實現 ? 為自己的應用程序編寫窗體設計器而需要實現的服務 在很多年中,MFC 一直是生成基于 Windows? 的應用程序的流行框架。MFC 包含一個可以使窗體生成、…

airdrop 是 藍牙嗎_您可以在Windows PC或Android手機上使用AirDrop嗎?

airdrop 是 藍牙嗎Aleksey Khilko/Shutterstock.comAleksey Khilko / Shutterstock.comApple’s AirDrop is a convenient way to send photos, files, links, and other data between devices. AirDrop only works on Macs, iPhones, and iPads, but similar solutions are av…

vue加百度統計代碼(親測有效)

申請百度統計后,會得到一段JS代碼,需要插入到每個網頁中去,在Vue.js項目首先想到的可能就是,把統計代碼插入到index.html入口文件中,這樣就全局插入,每個頁面就都有了;這樣做就涉及到一個問題,V…

如何將Rant變成生產力電動工具

Ranting doesn’t have to be a waste of breathe and time. You can turn a rant into a powerful tool for productivity. Learn how to transform your sense of victim hood and irritability to self-empowerment and mental clarity. 狂歡不必浪費呼吸和時間。 您可以將r…