我们可以使用 readUTF() 从 Java 中的 .txt 文件中读取字符串吗?
java 8object oriented programmingprogramming更新于 2025/11/16 9:16:17
java.io.DataOutputStream 的 readUTF() 方法将修改后的 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

