java.io.DataOutputStream的readUTF()方法将经过修改的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 {
//实例化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("文件的内容: "+buffer.toString());
}
}
输出结果文件的内容: 基本的な教育ネットワークへようこそ。
使用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("内容不是有效的UTF-8格式");
}
catch(IOException ex) {
System.out.println(ex.toString());
}
}
}
输出结果输入示例文本(单行)
Hello how are you]
插入到文件中的数据
内容不是有效的UTF-8格式