Завершение записи в файл произвольного доступа с дополнительными пробелами Java - PullRequest
0 голосов
/ 21 марта 2012

У меня есть следующий код

    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());

Итак, у меня проблемы в том, что этот файл записывается, но между буквами есть пробелы.Это вывод:

W Riting to F ile

вместо

Запись в файл

Есть предложения, как это исправить?

Ответы [ 2 ]

1 голос
/ 21 марта 2012

Если вам необходимо использовать RandomAccessFile в этой ситуации, попробуйте использовать writeUTF и посмотрите, поможет ли это.

file_test.writeUTF(st.toString());

Не забудьте закрыть файл, когда закончите.

file_test.close();
1 голос
/ 21 марта 2012

Если вы собираетесь записывать в текстовый файл, используйте любой из классов 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();
                }
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...