Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
sibflibustier
1 / 1 / 0
Регистрация: 24.12.2012
Сообщений: 19
1

RandomAccessFile Запись строки в файл

04.06.2013, 21:13. Просмотров 2351. Ответов 3
Метки нет (Все метки)

Java
1
2
3
4
5
6
String str = "abcdef";       
File f;
RandomAccessFile raf;
raf = new RandomAccessFile("D:\\new.txt","rw");
raf.writeChars(str);
raf.writeUTF(str);
В файл пишется следующее:
" a b c d e f -abcdefef"
А мне необходим записать "abcdef", без всяких пробелов и прочих знаков. Файл htm.
Почему записывается именно так? И как это исправить?

Для работы с файлом был выбран класс RandomAccessFile, потому что необходимо производить и запись, и чтение, и знать текущую позицию в файле, а также перемещаться по файлу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2013, 21:13
Ответы с готовыми решениями:

Файл: Сделать так, чтобы запись в файл была с новой строки?
Как в этом фрагменте кода сделать так чтобы запись в файл была с новой строки?...

Запись в файл с новой строки
Не получается почему-то записать данные в файл с новой строки. Почему так не...

Чтение и запись в файл по номеру строки
Здравствуйте! Есть файл, из которого нужно читать и писать по номеру строки....

RandomAccessFile
Есть такой код public void writeToEnd(File file, String text) {...

RandomAccessFile - чтение кириллицы
Возникла проблема. При использовании класса RandomAccessFile для чтения файла...

3
Care
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
04.06.2013, 22:39 2
raf.writeChars(str);
raf.writeUTF(str);

зачем вы 2 раза записываете?

Добавлено через 2 минуты
Если не ошибаюсь то writeUTF записывает символы в UTF к которым прибовляеться левый байт для обозначения что этот символ записан в UTF...
0
sibflibustier
1 / 1 / 0
Регистрация: 24.12.2012
Сообщений: 19
04.06.2013, 22:59  [ТС] 3
Записываю два раза, чтобы показать как работают оба метода, суть в том что мне нужно найти в htm документе, термин выделенный жирным шрифтом и добавить к нему якорь

К примеру, в документе записано: "<b>abcdef</b>"

Мой код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
raf = new RandomAccessFile("D:\\022.htm", "rw");
        String temp;
        String str;
        int index;
       do {
            str = raf.readLine();
            index = str.indexOf("<b");
            index = str.indexOf(">", index + 2) + 1;
            
            temp = "<a name=\"flag000000\">";
 
            String t = str.substring(0,index) + temp + str.substring(index);
            System.out.println(t);
            raf.seek(pos);
            raf.writeUTF(t);        
        } while (str != null);
Добавлено через 12 минут
Должно записаться следующее(что выводиться в консоль): "<b><a name="flag000000">abcd<\b>"
А записывается: " <b><a name="flag000000">abcd<\b>", т.е. лишние пробелы, и к тому же не всегда это записывается, иногда вообще какие то иероглифы.
1
Care
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
04.06.2013, 23:17 4
скорей всего это из-за raf.writeUTF у меня тоже такая же трабла была с ним (непонятные иероглифы появлялись рядом скаждым символом) лишние пробелы я тогда просто пропускал скипом...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2013, 23:17

Запись строки в файл
public static String FileKeyNumb = FileKey.class.getSimpleName(); private...

RandomAccessFile и FileOutputStream
Нужно записать wav-файл. Для этого я сначала пишу заголовок, а потом данные....

RandomAccessFile с возможностью кодировки/декодировки
Кто силен в java.io, подскажите, как создать класс с возможностями...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru