日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++文件流读取一行_「软帝学院」Java挑战者专栏:IO流详解2

發布時間:2024/9/27 c/c++ 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++文件流读取一行_「软帝学院」Java挑战者专栏:IO流详解2 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

軟帝學院筆記Day18

IO流(字符流FileReader)

  • 1.字符流是什么
    • 字符流是可以直接讀寫字符的IO流
    • 字符流讀取字符, 就要先讀取到字節數據, 然后轉為字符. 如果要寫出字符, 需要把字符轉為字節再寫出.
  • 2.FileReader
    • FileReader類的read()方法可以按照字符大小讀取
  • FileReader fr = new FileReader("aaa.txt"); //創建輸入流對象,關聯aaa.txt int ch; while((ch = fr.read()) != -1) { //將讀到的字符賦值給ch System.out.println((char)ch); //將讀到的字符強轉后打印 } fr.close(); //關流

21.02_IO流(字符流FileWriter)

  • FileWriter類的write()方法可以自動把字符轉為字節寫出FileWriter fw = new FileWriter("aaa.txt"); fw.write("aaa"); fw.close();

IO流(字符流的拷貝)

FileReader fr = new FileReader("a.txt");FileWriter fw = new FileWriter("b.txt");int ch;while((ch = fr.read()) != -1) { fw.write(ch);}fr.close();fw.close();

IO流(什么情況下使用字符流)

  • 字符流也可以拷貝文本文件, 但不推薦使用. 因為讀取時會把字節轉為字符, 寫出時還要把字符轉回字節.
  • 程序需要讀取一段文本, 或者需要寫出一段文本的時候可以使用字符流
  • 讀取的時候是按照字符的大小讀取的,不會出現半個中文
  • 寫出的時候可以直接將字符串寫出,不用轉換為字節數組

IO流(字符流是否可以拷貝非純文本的文件)

  • 不可以拷貝非純文本的文件
  • 因為在讀的時候會將字節轉換為字符,在轉換過程中,可能找不到對應的字符,就會用?代替,寫出的時候會將字符轉換成字節寫出去
  • 如果是?,直接寫出,這樣寫出之后的文件就亂了,看不了了

IO流(自定義字符數組的拷貝)

  • FileReader fr = new FileReader("aaa.txt"); //創建字符輸入流,關聯aaa.txt FileWriter fw = new FileWriter("bbb.txt"); //創建字符輸出流,關聯bbb.txt int len; char[] arr = new char[1024*8]; //創建字符數組 while((len = fr.read(arr)) != -1) { //將數據讀到字符數組中 fw.write(arr, 0, len); //從字符數組將數據寫到文件上 } fr.close(); //關流釋放資源 fw.close();

IO流(帶緩沖的字符流)

  • BufferedReader的read()方法讀取字符時會一次讀取若干字符到緩沖區, 然后逐個返回給程序, 降低讀取文件的次數, 提高效率
  • BufferedWriter的write()方法寫出字符時會先寫到緩沖區, 緩沖區寫滿時才會寫到文件, 降低寫文件的次數, 提高效率
  • BufferedReader br = new BufferedReader(new FileReader("aaa.txt")); //創建字符輸入流對象,關聯aaa.txt BufferedWriter bw = new BufferedWriter(new FileWriter("bbb.txt")); //創建字符輸出流對象,關聯bbb.txt int ch; while((ch = br.read()) != -1) { //read一次,會先將緩沖區讀滿,從緩沖去中一個一個的返給臨時變量ch bw.write(ch); //write一次,是將數據裝到字符數組,裝滿后再一起寫出去 } br.close(); //關流 bw.close();

IO流(readLine()和newLine()方法)

  • BufferedReader的readLine()方法可以讀取一行字符(不包含換行符號)
  • BufferedWriter的newLine()可以輸出一個跨平臺的換行符號""
  • BufferedReader br = new BufferedReader(new FileReader("aaa.txt")); BufferedWriter bw = new BufferedWriter(new FileWriter("bbb.txt")); String line; while((line = br.readLine()) != null) { bw.write(line); //bw.write(""); //只支持windows系統 bw.newLine(); //跨平臺的 } br.close(); bw.close();

IO流(將文本反轉)

  • 將一個文本文檔上的文本反轉,第一行和倒數第一行交換,第二行和倒數第二行交換

IO流(LineNumberReader)

  • LineNumberReader是BufferedReader的子類, 具有相同的功能, 并且可以統計行號
    • 調用getLineNumber()方法可以獲取當前行號
    • 調用setLineNumber()方法可以設置當前行號
  • LineNumberReader lnr = new LineNumberReader(new FileReader("aaa.txt")); String line; lnr.setLineNumber(100); //設置行號 while((line = lnr.readLine()) != null) { System.out.println(lnr.getLineNumber() + ":" + line);//獲取行號 } lnr.close();

IO流(裝飾設計模式)

  • interface Coder { public void code(); } class Student implements Coder { @Override public void code() { System.out.println("javase"); System.out.println("javaweb"); } } class HeiMaStudent implements Coder { private Student s; //獲取到被包裝的類的引用 public ItcastStudent(Student s) { //通過構造函數創建對象的時候,傳入被包裝的對象 this.s = s; } @Override public void code() { //對其原有功能進行升級 s.code(); System.out.println("數據庫"); System.out.println("ssh"); System.out.println("安卓"); System.out.println("....."); } }

IO流(使用指定的碼表讀寫字符)

  • FileReader是使用默認碼表讀取文件, 如果需要使用指定碼表讀取, 那么可以使用InputStreamReader(字節流,編碼表)
  • FileWriter是使用默認碼表寫出文件, 如果需要使用指定碼表寫出, 那么可以使用OutputStreamWriter(字節流,編碼表)
  • BufferedReader br = //高效的用指定的編碼表讀 new BufferedReader(new InputStreamReader(new FileInputStream("UTF-8.txt"), "UTF-8")); BufferedWriter bw = //高效的用指定的編碼表寫 new BufferedWriter(new OutputStreamWriter(new FileOutputStream("GBK.txt"), "GBK")); int ch; while((ch = br.read()) != -1) { bw.write(ch); } br.close(); bw.close();

IO流(轉換流圖解)

  • 畫圖分析轉換流

IO流(獲取文本上字符出現的次數)

  • 獲取一個文本上每個字符出現的次數,將結果寫在times.txt上

IO流(試用版軟件)

  • 當我們下載一個試用版軟件,沒有購買正版的時候,每執行一次就會提醒我們還有多少次使用機會用學過的IO流知識,模擬試用版軟件,試用10次機會,執行一次就提示一次您還有幾次機會,如果次數到了提示請購買正版

File類(遞歸)

  • 5的階乘

File類(練習)

  • 需求:從鍵盤輸入接收一個文件夾路徑,打印出該文件夾下所有的.java文件名

IO流(總結)

  • 1.會用BufferedReader讀取GBK碼表和UTF-8碼表的字符
  • 2.會用BufferedWriter寫出字符到GBK碼表和UTF-8碼表的文件中
  • 3.會使用BufferedReader從鍵盤讀取一行

最后,開發這么多年我也總結了一套學習Java的資料,如果你在技術上面想提升自己的話,可以關注我,私信發送領取資料或者在評論區留下自己的聯系方式,有時間記得幫我點下轉發讓跟多的人看到哦。

總結

以上是生活随笔為你收集整理的c++文件流读取一行_「软帝学院」Java挑战者专栏:IO流详解2的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。