我們能用 readUTF() 從 Java 中的 .txt 檔案讀取字串嗎?


java.io.DataOutputStreamreadUTF() 方法將採用改良 UTF-8 編碼的資料讀入 String 中,並返回。

示例

下面的 Java 程式使用 readUTF() 方法從 .txt 檔案中讀取 UTF-8 文字。

import java.io.DataInputStream;
import java.io.EOFException;
import java.io.FileInputStream;
import java.io.IOException;
public class UTF8Example {
   public static void main(String args[]) {
      StringBuffer buffer = new StringBuffer();
      try {
         //Instantiating the FileInputStream class
         FileInputStream fileIn = new FileInputStream("D:\test.txt");
         //Instantiating the DataInputStream class
         DataInputStream inputStream = new DataInputStream(fileIn);
         //Reading UTF data from the DataInputStream
         while(inputStream.available()>0) {
            buffer.append(inputStream.readUTF());
         }
      }
      catch(EOFException ex) {
         System.out.println(ex.toString());
      }
      catch(IOException ex) {
         System.out.println(ex.toString());
      }
      System.out.println("Contents of the file: "+buffer.toString());
   }
}

輸出

Contents of the file: టుటోరియల్స్ పాయింట్ కి స్వాగతిం

使用 readUTF() 方讀取普通文字

如果使用 readUTF() 方法從檔案中讀取文字時,檔案內容不是無效的 UTF 格式,那麼此方法將生成 EOFException。

示例

在下面的 Java 程式中,我們使用 BufferedWriter 將普通文字寫入檔案,並嘗試使用 readUTF() 方法讀取它。這將生成 EOFException。

import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.EOFException;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Scanner;
import java.io.FileWriter;
public class ReadingTextUsingUTF {
   public static void main(String args[]) {
      FileWriter fileOut = null;
      BufferedWriter bufferedWriter = null;
      FileInputStream fileIn = null;
      DataInputStream inputStream = null;
      Scanner sc = new Scanner(System.in);
      try {
         //Instantiating the FileOutputStream class
         fileOut = new FileWriter("D:\utfText.txt");
         //Instantiating the DataOutputStream class
         bufferedWriter = new BufferedWriter(fileOut);
         //Writing UTF data to the output stream
         System.out.println("Enter sample text (single line)");
         bufferedWriter.write(sc.nextLine());
         bufferedWriter.flush();
         System.out.println("Data inserted into the file");
         bufferedWriter.close();
         fileOut.close();
         //Instantiating the FileInputStream class
         fileIn = new FileInputStream("D:\utfText.txt");
         //Instantiating the DataInputStream class
         inputStream = new DataInputStream(fileIn);
         //Reading UTF data from the DataInputStream
         while(inputStream.available()>0) {
            System.out.println(inputStream.readUTF());
         }
         inputStream.close();
         fileIn.close();
      }
      catch(EOFException ex) {
         System.out.println("Contents are not in valid UTF-8 format");
      }
      catch(IOException ex) {
         System.out.println(ex.toString());
      }
   }
}

輸出

Enter sample text (single line)
Hello how are you]
Data inserted into the file
Contents are not in valid UTF-8 format

更新時間: 2019-09-10

312 次瀏覽

開啟你的 職業

完成課程,獲得認證

開始
廣告