我编写了以下代码来读取系统生成的计划任务文件,即 SchedLgU.Txt
File f = new File("C:\\WINDOWS\\Tasks\\SchedLgU.Txt");
FileInputStream fstream = new FileInputStream(f);
// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line="";
do{
line = br.readLine();
System.out.println(line);
} while(br.readLine()!=null);
我从带有框的字符中获得了一些垃圾值。
我必须定义任何不同的格式吗?
最佳答案
那么,您正在使用 InputStreamReader
不指定字符编码 - 因此它将始终使用平台默认编码。看起来这个文件是 UTF-16 格式的(至少在我的盒子上是这样)。只需将该编码传递给 InputStreamReader
构造函数正确读取文件。
用你的测试程序尝试一下,似乎有效。请注意,使用 DataInputStream
是没有意义的。如果你只是想把它包装在 InputStreamReader
中- 只需通过 FileInputStream
直接到InputStreamReader
构造函数:
BufferedReader br = new BufferedReader(new InputStreamReader(fstream, "UTF-16"));
关于java - 使用java程序读取Schedule.Text文件,使用带框的junvalue获取输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4932984/