Java - 无法读取¬Ö(特殊字符)并打印出来

时间:2014-11-06 21:34:52

标签: java file utf-8 character utf-16

我正在使用txt文件,其中包含如下所示的文本: 超人是所有法律高等的大师[testim]

我正在尝试阅读此文本,并将其打印在另一个文档中,但是当我打印时,它会打印出类似这样的内容 超人是所有合法高手的大师  [testim]

我想在文档中打印确切的内容,你能帮助我吗? 这是我的代码:

    BufferedReader inputStream = null;
    PrintWriter outputStream = null;

    FileInputStream fis = new FileInputStream(new File("completeTextFile"));
    inputStream = new BufferedReader(new InputStreamReader(fis, "UTF-8"));
    outputStream = new PrintWriter(new FileWriter("partSplit.txt"));

    String line;
    while ((line = inputStream.readLine()) != null) {
        String[] split = line.split("\\s+");
        int num = split.length;

在我按空格分割文件后,我想将上面的单词放在一起,但之后它只会在没有特殊字符的两行中打印文本。我试图通过StackOverflow查看,并尝试使用UTF-8,但它仍然无法正常工作。我尝试使用UTF-16,然后Java堆空间不足以继续发生问题,即使在我设置-Xms512M -Xmx2048M后也是如此。

如果你可以帮我弄清楚如何用这个特殊字符读取文件,然后在一行上打印文本行,那就太棒了!

编辑: 这是我打印的方式:                 for(int b = 11; b< num - 6; b ++){                     outputStream.print(split [b] +“”);                 }                 outputStream.print(split [num - 6] +“\ t”);

1 个答案:

答案 0 :(得分:1)

尝试使用下面的其他编码......

inputStream = new BufferedReader(new InputStreamReader(fis, "ISO-8859-1"));

您可以使用此构造函数设置输出的编码。

outputStream =  new PrintWriter("partSplit.txt","ISO-8859-1");