我们可以使用 readUTF() 从 Java 中的 .txt 文件中读取字符串吗?

java 8object oriented programmingprogramming更新于 2024/10/13 9:48:00

java.io.DataOutputStreamreadUTF() 方法将修改后的 UTF-8 编码的数据读入字符串并返回。

示例

以下 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 {
         //实例化 FileInputStream 类
         FileInputStream fileIn = new FileInputStream("D:\test.txt");
         //实例化 DataInputStream 类
         DataInputStream inputStream = new DataInputStream(fileIn);
         //从 DataInputStream 读取 UTF 数据
         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 {
         //实例化 FileOutputStream 类
         fileOut = new FileWriter("D:\utfText.txt");
         //实例化 DataOutputStream 类
         bufferedWriter = new BufferedWriter(fileOut);
         //将 UTF 数据写入输出流
         System.out.println("输入示例文本(单行)");
         bufferedWriter.write(sc.nextLine());
         bufferedWriter.flush();
         System.out.println("数据插入文件");
         bufferedWriter.close();
         fileOut.close();
           //实例化 FileInputStream 类
         fileIn = new FileInputStream("D:\utfText.txt");
         //实例化 DataInputStream 类
         inputStream = new DataInputStream(fileIn);
         //从 DataInputStream 读取 UTF 数据
         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

相关文章