Java中可以使用readUTF()方法从.txt文件中读取字符串吗?
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格式