PrintWriter 不保存所有字符

PrintWriter doesn't save all characters

class Start 
{
    File plikIN;
    Scanner in;
    PrintWriter out;

    Start(String input, String output)
    {
        plikIN = new File(input);
        try{
        in = new Scanner(plikIN);
        out = new PrintWriter(output);
        } catch (FileNotFoundException e) {System.out.println("Nie odnaleziono podanego pliku\n"+e);}
    }

    private void saveing() throws IOException
    {
        String word;
        int wordLength;
        String wordTable[];
        char c;

        while((word = in.next()) != null)
        {
            wordLength = word.length();
            wordTable = new String[wordLength];
            for(int k=0; k<wordTable.length; ++k)
            {
                c = word.charAt(k); 
                out.println(c);
            }   
        }
        out.close();
    }

    public static void main(String[] args) throws IOException
    {
        String nazwaPlikuWejsciowego = args[0];
        String nazwaPlikuWyjsciowego = args[1];
        Start doit = new Start(nazwaPlikuWejsciowego, nazwaPlikuWyjsciowego);
        doit.saveing();

    }
}

我的问题是保存到文件。在上面的 saveing 方法之后,文件不包含任何单个字符。例如,当我将 out.close() 移动到 while 时,该文件包含一个词。当out.close()for时,程序只保存一个字符。为什么?

out.close()之前添加out.flush()

您需要在关闭之前将字节刷新到磁盘..

这个((word = in.next()) != null)会抛出异常。 当没有更多元素时,in.next() 不会 return null。看看 API