我们可以使用 readUTF() 从 Java 中的 .txt 文件中读取字符串吗?
java 8object oriented programmingprogramming更新于 2024/10/13 9:48:00
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