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

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

04.06.2013, 21:13. Просмотров 2229. Ответов 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"
http://www.cyberforum.ru/java-j2se/thread1678461.html
А мне необходим записать "abcdef", без всяких пробелов и прочих знаков. Файл htm.
Почему записывается именно так? И как это исправить?

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

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

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

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

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

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

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 / 1
Регистрация: 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
Привет! Вот еще темы с решениями:

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

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

Файл: как-то по-другому организовать запись в файл, не прибегая к булеановским значениям?
Есть участок кода, который выводит одно из трёх сообщений в консоль в...

Файл: Передать файл в качестве параметра командной строки в программу
Есть программа с файлом(Eclipse) import java.io.*; public class clj { }...


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

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

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