2

我使用 /output:D:\list.txt product get name,version 从 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);
      }
 }
4

3 回答 3

9

这可能是由于编码问题。尝试使用UTF-16字符集

BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(path), "UTF-16"));
于 2013-01-19T06:14:17.190 回答
0

你试过 FileReader 吗?

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 获取此类说明。

于 2013-01-19T06:25:23.143 回答
0

看起来您阅读了一个 UTF-16 编码的文件。

给你的读者一个提示——传递“UTF-16”,而不是“ISO-8859-1”。

于 2013-01-19T07:20:18.227 回答