我使用/output:D:\list.txt产品获取名称,版本从cmd命令获取应用程序列表。但是,当我尝试使用java检索列表时,输出在每个字母后面都有空格。
示例:
来自文本文件
links
images
lists
在java中阅读时
l i n k s
i m a g e s
l i s t s
有没有办法解决这个问题?
我刚刚使用了这段代码:
public void myreader() throws IOException {
Path path = Paths.get("D:\\list.txt");
Charset charset = Charset.forName("ISO-8859-1");
try (BufferedReader reader = Files.newBufferedReader(path,charset)) {
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
}
答案 0 :(得分:9)
这可能是由编码问题引起的。尝试使用UTF-16
字符集
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(path), "UTF-16"));
答案 1 :(得分:0)
FileReader fileReader;
try {
fileReader = new FileReader( "D:\\list.txt" );
BufferedReader bufferedReader = new BufferedReader( fileReader );
String line;
while( ( line = bufferedReader.readLine() ) != null )
{
System.out.println( line );
}
fileReader.close();
} catch ( IOException except ) {
System.err.println( except.getStackTrace()[0] );
}
我不知道你的问题来自哪里,但你可以拿FileReader来获取这些指示。
答案 2 :(得分:0)
看起来你读了一个UTF-16编码的文件。
给你的读者提示 - 传递“UTF-16”,而不是“ISO-8859-1”。