随机访问文件写入使用额外空间Java结束

时间:2012-03-21 15:54:50

标签: java outputstream

我有以下代码

    RandomAccessFile file_test = new RandomAccessFile("C:\\Test Folder\\test4.doc", "rws");
    StringBuffer st = new StringBuffer();

    st.append("Writing to File");

    file_test.writeChars(st.toString());
    file_test.seek(0);

    System.out.println(file_test.readLine());

所以我遇到的问题是正在编写该文件,但每个字母之间都有空格。这是输出:

我不知道如何

而不是

写入档案

有关如何解决此问题的任何建议吗?

2 个答案:

答案 0 :(得分:1)

如果要写入文本文件,请使用任何Writer或OutputStream类,而不是用于二进制文件的RandomAccessFile。

OutputStreamWriter osw = null;
        try
        {
            osw = new OutputStreamWriter(new FileOutputStream("textfile.txt"), "ISO-8859-1");
            osw.write("Here comes some output");
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }finally {
            if(osw != null) {
                try
                {
                    osw.close();
                }
                catch (IOException e)
                {
                    e.printStackTrace();
                }
            }
        }

答案 1 :(得分:1)

如果在这种情况下必须使用RandomAccessFile,请尝试使用writeUTF并查看是否有帮助。

file_test.writeUTF(st.toString());

完成后别忘了关闭文件。

file_test.close();