Java io流學習總結(三)

轉載于:https://www.cnblogs.com/ll409546297/p/7197911.html

java.io幾種讀寫文件的方式

一、Java把這些不同來源和目標的數據都統一抽象為數據流。

  Java語言的輸入輸出功能是十分強大而靈活的。

  在Java類庫中,IO部分的內容是很龐大的,因為它涉及的領域很廣泛:標準輸入輸出,文件的操作,網絡上的數據流,字符串流,對象流,zip文件流。

  這里介紹幾種讀寫文件的方式

二、InputStream、OutputStream(字節流)

     //讀取文件(字節流)InputStream in = new FileInputStream("d:\\1.txt");//寫入相應的文件OutputStream out = new FileOutputStream("d:\\2.txt");//讀取數據//一次性取多少字節byte[] bytes = new byte[2048];//接受讀取的內容(n就代表的相關數據,只不過是數字的形式)int n = -1;//循環取出數據while ((n = in.read(bytes,0,bytes.length)) != -1) {//轉換成字符串String str = new String(bytes,0,n,"GBK"); #這里可以實現字節到字符串的轉換,比較實用System.out.println(str);//寫入相關文件out.write(bytes, 0, n);}//關閉流in.close();out.close();

三、BufferedInputStream、BufferedOutputStream(緩存字節流)使用方式和字節流差不多,但是效率更高(推薦使用)

      //讀取文件(緩存字節流)BufferedInputStream in = new BufferedInputStream(new FileInputStream("d:\\1.txt"));//寫入相應的文件BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("d:\\2.txt"));//讀取數據//一次性取多少字節byte[] bytes = new byte[2048];//接受讀取的內容(n就代表的相關數據,只不過是數字的形式)int n = -1;//循環取出數據while ((n = in.read(bytes,0,bytes.length)) != -1) {//轉換成字符串String str = new String(bytes,0,n,"GBK");System.out.println(str);//寫入相關文件out.write(bytes, 0, n);}//清楚緩存out.flush();//關閉流in.close();out.close();

四、InputStreamReader、OutputStreamWriter(字符流,這種方式不建議使用,不能直接字節長度讀寫)。使用范圍用做字符轉換

       //讀取文件(字節流)InputStreamReader in = new InputStreamReader(new FileInputStream("d:\\1.txt"),"GBK");//寫入相應的文件OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream("d:\\2.txt"));//讀取數據//循環取出數據byte[] bytes = new byte[1024];int len = -1;while ((len = in.read()) != -1) {System.out.println(len);//寫入相關文件out.write(len);}//清楚緩存out.flush();//關閉流in.close();out.close();

五、BufferedReader、BufferedWriter(緩存流,提供readLine方法讀取一行文本)

     //讀取文件(字符流)BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("d:\\1.txt"),"GBK"));#這里主要是涉及中文//BufferedReader in = new BufferedReader(new FileReader("d:\\1.txt")));//寫入相應的文件BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("d:\\2.txt"),"GBK"));//BufferedWriter out = new BufferedWriter(new FileWriter("d:\\2.txt"));//讀取數據//循環取出數據String str = null;while ((str = in.readLine()) != null) {System.out.println(str);//寫入相關文件out.write(str);out.newLine();}//清楚緩存out.flush();//關閉流in.close();out.close();

六、Reader、PrintWriter(PrintWriter這個很好用,在寫數據的同事可以格式化)

     //讀取文件(字節流)Reader in = new InputStreamReader(new FileInputStream("d:\\1.txt"),"GBK");//寫入相應的文件PrintWriter out = new PrintWriter(new FileWriter("d:\\2.txt"));//讀取數據//循環取出數據byte[] bytes = new byte[1024];int len = -1;while ((len = in.read()) != -1) {System.out.println(len);//寫入相關文件out.write(len);}//清楚緩存out.flush();//關閉流in.close();out.close();

七、基本的幾種用法就這么多,當然每一個讀寫的使用都是可以分開的。為了更好的來使用io。流里面的讀寫,建議使用BufferedInputStream、BufferedOutputStream

轉載于:https://www.cnblogs.com/SongG-blogs/p/10932086.html

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

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

相關文章

現在流行的畫原型圖工具_原型資源圖:8種流行原型工具的綜合指南

現在流行的畫原型圖工具Although tools are not the most important things to learn as a UX designer, inevitably you need to use it in order to achieve your more important goals, to solve user’s problems. This article covers today’s 8 popular UX prototyping …

持續5個月,200+筆記,3千多人參與,邀請你來學源碼~

注意:本文點擊文末閱讀原文可查看文中所有鏈接。我正在參加掘金年度人氣作者投票活動,大家有空可以加微信群幫忙投票,感謝大家!想起今天還沒發文,就開放下微信群二維碼,大家掃碼進群讀源碼和幫忙投票吧。群…

自己動手開發調試器 01

背景: 在做XXX編譯器檢證時經常需要區分是代碼端錯誤,還是編譯器端錯誤,因此對代碼進行調試是必不可少的。但是狗日的甲方并沒有提供對應的調試器XXXDB,而用GDB調試XXX生成的可執行程序很不穩定,經常出現異常,干脆…

02如何抓住重點,系統高效地學習數據結構與算法?

以下內容總結自極客時間王爭大佬的《數據結構與算法之美》課程,本文章僅供個人學習總結。 什么是數據結構?什么是算法? 從廣義上講,數據結構就是指一組數據的存儲結構。算法就是操作數據的一組方法。 類比圖書館的書籍,我們如果想找一本書可…

第2年,倒數第3天,1.5萬票,感動!

1源碼共讀大家好,我是若川。眾所周知。從8月份開始,我組織了源碼共讀活動,至今已經有5個月了,每周一期,進行到了第18期。每周堅持寫源碼解讀文章,每天堅持答疑解惑,幫助了很多人學會看源碼&…

啟發式搜索給神經網絡_神經科學如何支持UX啟發式

啟發式搜索給神經網絡重點 (Top highlight)Interaction and UX designers have long known and used heuristics to guide the creation of a user-friendly interface. We know empirically that these principles work, and they make “common sense”. These heuristics th…

Django實戰(1):需求分析和設計

Depot是《Agile Web Development with Rails》中的一個購物車應用。 該書中用多次迭代的方法,逐步實現購物車應用,使很多人走上了rails開發的道路。 遺憾的是Django世界中好像沒有類似的指引,也許是因為pythoner 不需要具體的例子。 但是如果…

使用 apiDoc 為你的Node.js API 生成文檔

翻譯: 瘋狂的技術宅 原文:jonathas.com/documenting… 未經許可,禁止轉載! 當你為其他開發人員(前端,桌面,移動等)開發 API 時,需要生成一份風格良好的文檔,以…

海浪 shader_海浪下的發現

海浪 shaderI’ve been playing Subnautica for over 25 hours now, and likely have at least that many more to go. The game puts you in the shoes of a crew member on the Aurora, a spaceship that suffers a catastrophic incident and plummets to the largely ocean…

最后一天,特邀小姐姐配音拉票,今日可投28票

1源碼共讀大家好,我是若川。最后一天,特邀小姐姐配音拉票,超級好聽。眾所周知。從8月份開始,我組織了源碼共讀活動,至今已經有5個月了,每周一期,進行到了第18期。每周堅持寫源碼解讀文章&#x…

NET中使用Memcached的相關資源整理

本文轉自:http://www.cnblogs.com/dudu/archive/2009/07/19/1526407.html Memcached官方站點:http://www.danga.com/memcached / Memcached Win32 1.2.6下載:http://code.jellycan.com/memcached/ 安裝幫助:Windows下的.NET Memca…

FFMPEG 視頻圖像解封裝解碼

FFMPEG4.0 音頻解碼解封裝FFMPEG 音頻封裝編碼 下面的函數方法基于最新的FFMPEG 4.0(4.X):本文講是如何從一個視頻文件中提取出其中的圖像數據,并將圖像數據保存到文件中。 解碼解封裝的過程與音頻差不多,具體如下&…

對數據可視化的理解_使數據可視化更容易理解

對數據可視化的理解Data is weaving its way into almost all aspects of our lives since the past decade. Our ability to store more information in smaller and smaller spaces has encouraged us to make sure we leave no information out. The ease of collecting inf…

面試官:項目中常用的 .env 文件原理是什么?如何實現?

1. 前言大家好,我是若川。持續組織了5個月源碼共讀活動,感興趣的可以點此加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。本文倉庫 h…

語言分類,我接觸和我想學習的

本文信息和數據出自hyperpolyglot,將當前主流編程語言分為11個大類,分別為:解釋型(PHP,Perl,Python,Ruby,Tcl,Lua,JavaScript,Io)、操作系統自動化型(POSIX Shell,AppleScript,PowerShell)、C風格(C,Objective C,Java,C#)、Pascal風格(Pascal…

梯度下降法和隨機梯度下降法

1. 梯度 在微積分里面,對多元函數的參數求?偏導數,把求得的各個參數的偏導數以向量的形式寫出來,就是梯度。比如函數f(x,y), 分別對x,y求偏導數,求得的梯度向量就是(?f/?x, ?f/?y)T,簡稱grad f(x,y)或者▽f(x,y)。對于在點(x…

一張圖看程序媛阿源的2021個人年度流水賬

大家好,我是若川。持續組織了5個月源碼共讀活動,感興趣的可以點此加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。本文來自讀者阿源小…

案例研究:設計與方法_如何進行1小時的重新設計(案例研究)

案例研究:設計與方法速度設計簡介 (Intro to Speed Designing) I’ve been an advocate of speed redesigning technique for a while. The idea is simple — decrease the hand-eye lag and make super quick decisions, seemingly without thinking. The logic behind it is…

圖文并茂重新認識下遞歸

大家好,我是若川。持續組織了5個月源碼共讀活動,感興趣的可以點此加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。對于大部分前端(包…

《C和指針》讀書筆記

看過了經典的K&R C,又看了這本Pointers on C,溫習了C語言的基本語法。 在重溫過程中,感覺需要重點把握的知識是指針、結構和動態內存分配。 這對今后的算法和操作系統方面的研究學習很有幫助。 3.2.3 聲明指針int* b, c, d;本以為這條語句…