Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/185: Рейтинг темы: голосов - 185, средняя оценка - 4.61
1 / 1 / 1
Регистрация: 20.11.2009
Сообщений: 41

Как записать в файл??

09.12.2009, 10:30. Показов 34146. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне нужно создать код,где пользователь сможет ввести данные в новый файл или в уже сущетсвующий.
Данные у меня записываются таким методом:

Java
1
2
3
4
5
6
7
8
9
10
11
 public void WritetoFile() throws IOException {
        FileWriter os = new FileWriter("data.txt");
        System.out.println("Enter text:");
 
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        String str = new String();
                str = in.readLine();
        str = str.replaceAll("  ", " ");
        os.write(str);
        os.close();
        }
В этом методе я создаю файл с названием "data.txt". А как сделать,чтобы данные записывались в уже существующий фал,если такой файл существует??
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.12.2009, 10:30
Ответы с готовыми решениями:

Файл: Как записать построчно массив из базы данных в файл?
всем привет! $ch = mysqli_query($dblink, "SELECT * FROM `sceneries`") or die(mysql_error()); $list = array(); while ($list =...

Как перебрать json файл и записать результат в файл?
Доброго времени суток! Мне нужно перебрать большой Json файл по значению "sum" и записать в файл( если sum больше 5 то записываем его в...

Как записать XML файл в исполнительный файл программы?
Как записать XML файл в исполнительный файл программы? Кросплатформенно!! (linux,windows и Cmake). Ах да без Qt.

9
 Аватар для Mazhor1
70 / 43 / 8
Регистрация: 30.10.2009
Сообщений: 101
09.12.2009, 18:07
Лучший ответ Сообщение было отмечено как решение

Решение

Java
1
2
3
4
5
6
7
8
9
10
11
12
FileOutputStream out = null;
    try{
        out = new FileOutputStream("D:/work.txt");
    }catch(FileNotFoundException e){
        System.out.println("Файл не найден");
    }
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("Enter text:");
    while (true){
        char str = (char) in.read();
        out.write(str);
    }
Код конечно не очень) Но запись идет) Есть минусы:
-Програма сама не завершаеться так как есть бесконечный цикл;
-Запись возможна только на латинских буквах;
-При каждом запуске программы файл переписываеться, а не дописываеться.
Конечно особо не помог, но может на мысль натолкнул=)
3
3 / 3 / 0
Регистрация: 09.12.2009
Сообщений: 12
10.12.2009, 23:33
Для записи в существующий фал есть класс java.io.RandomAccessFile
Смотри документацию к нему. Я пока им не пользовался.
0
3 / 3 / 0
Регистрация: 09.12.2009
Сообщений: 12
11.12.2009, 03:08
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/**@(#)RandomAccessSample 10/12/09*/
 
package samples10.classes;
 
import java.io.InputStreamReader;
//import java.io.OutputStreamWriter;
import java.io.BufferedReader;
import java.io.RandomAccessFile;
//import java.io.BufferedWriter;
//import java.io.InputStreamReader;
//import java.io.PrintWriter;
//import java.io.FileInputStream;
//import java.io.DataInputStream;
 
public class RandomAccessSample{
    static RandomAccessFile aFile;
    public static void main(String[] _args){
        if(_args.length!=1) usage();//если не введено имя файла -- саботаж.
        try{
            aFile=new RandomAccessFile(_args[0],"rw");//открываем для чтения/записи
        
            BufferedReader in=new BufferedReader(//по привычке создаем буфер
                new InputStreamReader(System.in,"cp866"));//в кодировке консоли, хотя можно писать в файл байты
            while(true){
                System.out.print("enter new data>");
                String nextLine=in.readLine();
                if(nextLine.equals("exit")) break;//мы хотим выйти
                aFile.seek(aFile.length());
                aFile.writeChars(nextLine+'\n');
            }
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }
    private static void usage(){
        System.out.println ("Error. Enter a filename"+'\n');
    }
}
Добиться правильной перекодировки из cp866 в байты и обратно пока не удалось. Может завтра дожму Сейчас пишет в юникоде, как я понимаю.
0
3 / 3 / 0
Регистрация: 09.12.2009
Сообщений: 12
11.12.2009, 21:08
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/**@(#)RandomAccessSample 10/12/09*/
package samples10.classes;
 
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.BufferedReader;
import java.io.RandomAccessFile;
import java.io.DataInputStream;
import java.io.PrintStream;
/**@autor J_Ash
 *Пишет и читает из консоли файл в досовскйо кодировке.
 *В том числе на русском.
 *Файл всегда дописывается в конец.
 *Уважать. Рождено в муках :D
 **/
public class RandomAccessSample{
    static RandomAccessFile aFile;
    static BufferedReader in;
    static byte[] byteSeparator;
    static String arg;
    static String enc;
    
    private static void init(){
            try{
                System.setOut(new PrintStream(System.out,false,"cp866"));
                aFile=new RandomAccessFile(arg,"rw");//открываем для чтения/записи
                in=new BufferedReader(//По привычке создаем буфер
                    new InputStreamReader(System.in,"cp866"));//Читаем консоль в досовской кодировке.
                byteSeparator=(String.valueOf('\n')).getBytes("cp866");//запоминаем байт, соответствующий переводу строки.
            }
            catch(Exception e){}//исключений не будет
            }
            
    public static void main(String[] _args){
        if(_args.length!=1) usage();//если не введено имя файла -- саботаж.
        arg=_args[0];
        try{
            init();
            while(true){                                //Теперь внутри программы 
                System.out.print("enter new data>");    //мы имеем дело со стандартными 
                String nextLine=in.readLine();          //Unicode символами, что позволяет применять стандартные методы для работы с Char.
                if(nextLine.equals("exit")) break;//Мы хотим выйти.
                if(nextLine.equals("read")){//Мы хотим прочесть написанное.
                    read();
                }
                aFile.seek(aFile.length());         //Переходим в конец файла.
                byte[] byteBuffer=nextLine.getBytes("cp866");//Конвертируем Unicode в DOS-вскую кодировку
                aFile.write(byteBuffer);        //и пишем в файл.
                aFile.write(byteSeparator);     //Перевод строки.
            }
        }
        catch (Exception e){
            e.printStackTrace();
            usage();
        }
    }
    
    private static void read(){
        try{
            Long aLength=aFile.length();//Между делом запоминаем его длинну, 
            byte[] buffer=new byte[aLength.intValue()];
            aFile.seek(0L);
            aFile.readFully(buffer,0,buffer.length);
            String aString=new String(buffer,0,buffer.length,"cp866");
            System.out.println (aString);
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }
    private static void usage(){
        System.out.println ("Error. Usage:"+'\n'+
                            "java RandomAccessFile <any_file_or_not_existing>"+'\n'+
                            "when app is active, enter your text to write,"+'\n'+
                            "\"exit\" to quit"+
                            "or \"read\" to dump file");    
                            }
}
2
3 / 3 / 0
Регистрация: 09.12.2009
Сообщений: 12
12.12.2009, 12:50
По трезвости пересмотрел код. Вызывает недоумение 4 перекодировки туда и обратно.
В комментах есть ошибки (код менялся, комменты, -- нет). Жаль, очень жаль что нельзя поправить.
0
Mobile Developer
 Аватар для lifestyle
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
12.12.2009, 13:01
Цитата Сообщение от J_Ash Посмотреть сообщение
По трезвости пересмотрел код. Вызывает недоумение 4 перекодировки туда и обратно.
В комментах есть ошибки (код менялся, комменты, -- нет). Жаль, очень жаль что нельзя поправить.

Добавлено через 7 минут
И есчо. Йа, бля два вечера посвятил этому делу. Да, беспесды узнал много нового для себя, поэтому время считаю не зря потраченным, по почему бля до сих пор студентка не дала мне свое маленькое спасибо *плакаю*
не надоело флудить и копи-пастить???+мат,сбавь обороты.
0
3 / 3 / 0
Регистрация: 09.12.2009
Сообщений: 12
12.12.2009, 13:55
Цитата Сообщение от lifestyle Посмотреть сообщение
не надоело флудить и копи-пастить???+мат,сбавь обороты.
Во-первых: код истинно мой, не копипаста. (йа много гуглил, прежде чем его начертать, доволен собой)
Во-вторых, флуд -- да, согласен, но, думаю, полезность моего сообщения перевешивает его аморальность в терминах привлекательности форума.
Обороты? Подумаю.

Добавлено через 17 минут
Мне даже льстит то, что мой код приняли за чужой.
Значит, йа так высок, как думаю
1
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
22.03.2019, 10:51
Andrew_BY, всего то 10 лет прошло и заработало. Отличный результат
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
22.03.2019, 14:24
используй FileOutputStream. Там есть конструктор, который принимает 2 параметра: 1. File или String (путь) 2. append (boolean): true - записывать к существующим данным, false - перезатереть старые данные и записать новые
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.03.2019, 14:24
Помогаю со студенческими работами здесь

Файл: Есть 5 классов, как их записать в текстовый файл?
Ребята пожалуйста кто знает как разобраться с файлами. Есть 5 классов как их записать в текстовый файл??????Чтобы они потом в этом файле...

Файл: Как с помощью Python записать (а не перезаписать) данные из базы SQLite в файл lex.txt.
Помогите с разработкой части проекта, пожалуйста! Есть файл db.sqlite в котором таджикские слова: words А Абад Адиб Асрор ...

Два числа записать в файл input, сравнить эти числа и если A < B записать в файл Output этот знак
Решаю такую задачу: нужно два числа записать в файл input потом сравнить эти числа, и если A &lt; B записать в файл Output этот знак. Часть...

создать файл 1.part и записать в него первые x элементов массива. После чего, создать второй файл 2.part, куда записать оставшиеся в массиве элементы.
Не могу понять почему не работает вот этот кусок текста. ofstream q (&quot;1.part&quot;); for (int i=0; i&lt;10; ++i) { q...

Как записать в файл?
Нужно записать текст в текстовый файл. Пытаюсь вот так: String^ filename = textBox3-&gt;Text + &quot;.txt&quot;; StreamWriter^ filename = gcnew...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru