Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 15.02.2015
Сообщений: 116
1

Вывод файла, ввод в файл новых строк и сохранение этого в файл

18.02.2015, 13:22. Просмотров 1121. Ответов 8
Метки нет (Все метки)

у меня есть файл, с property и мне в него надо записать новые пары идентификатор = значение
я наивно полагал что это будет работать, но не работает как я вижу и не должно, подскажите, как мне переделать что бы заработало
И нужно делать проверку что бы пары записывали именно таким образом идентификатор = значение. Я пока не понимаю как это сделать, если можно намекните
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
public class Main {
 
 
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        FileReader fin = new FileReader("src/MyWork0/t1.txt");
        String name;
        int c;
        System.out.println("Вы правда хотите открыть этот файл? y/n");
        name = br.readLine();
        if (name.equals("y"))
            while ((c = fin.read()) != -1) System.out.print((char) c);
        if (name.equals("n")) {
 
        }
 
        System.out.println("Введите пары типа идентификатор = значение значение");
        System.out.println("Для выхода из программы нажмите q");
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String s = reader.readLine();
        PrintWriter printWriter = new PrintWriter(fin);
        while (!s.equals("q")) {
            s = reader.readLine();
        }
        printWriter.println(s);
    }
}
Добавлено через 2 часа 58 минут
я понял что мне нужно параллельно два процесса
решил пока не ввязываться сделал так
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class WriterFile {
    public WriterFile() throws IOException
    {
        System.out.println("Введите пары типа идентификатор = значение значение");
        System.out.println("Для выхода из программы нажмите q");
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String s = reader.readLine();
        PrintWriter printWriter = new PrintWriter(new File("src/test/t36.txt"));
        printWriter.println(s);
        printWriter.close();
        while (!s.equals("q")) {
            s = reader.readLine();
            
        }
    }
}
но выводит только одну строку теперь интересно почему)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.02.2015, 13:22
Ответы с готовыми решениями:

Ввод структурированных данных в файл и вывод данных из этого файла на экран (сделать хранилище данных в файле)
Здравствуйте) помогите написать программу, осуществляющую ввод структурированных данных в файл и...

Сохранение значения в эдитах в файл, и загрузка этого файла
Привет! Есть одна проблема которую я не знаю как делать. В общем есть форма, на которой 2 кнопки...

Сохранение данных из листбоксов в файл и загрузка из этого файла в формы
помочь с записью данных в файл и заполнение из файла (по кнопкам в верхнем левом углу) у меня есть...

Ввод из файла и вывод в файл
#include<iostream> #include<iomanip> #include<ctime> #include<cstdlib> int main(){ ...

8
206 / 206 / 71
Регистрация: 25.02.2014
Сообщений: 569
18.02.2015, 14:02 2
Лучший ответ Сообщение было отмечено vlakuz как решение

Решение

vlakuz, так вы в цикле записывайте
1
0 / 0 / 0
Регистрация: 15.02.2015
Сообщений: 116
18.02.2015, 14:31  [ТС] 3
Kochmarik, а можете подсказать какой цикл и как мне определять количество стро какое записывать?
И еще самое главное условие как реализовать что бы пользователь мог записывать имя = значения, а если например введе имя писал ватал эрор)
0
206 / 206 / 71
Регистрация: 25.02.2014
Сообщений: 569
18.02.2015, 16:55 4
Лучший ответ Сообщение было отмечено vlakuz как решение

Решение

vlakuz, записывайте в том же цикле, в котором вы считываете с клавиатуры. По поводу последнего я не понял... приведите пример
1
0 / 0 / 0
Регистрация: 15.02.2015
Сообщений: 116
18.02.2015, 18:45  [ТС] 5
Kochmarik, если я пишу в вайл ниче не работает =)
А проверка такая можно вводить инфу только как индификатор = значение, а если введет индификатор значение то не прочитает или если напишет одно значение или кей иливалью скажет прости не запишу)
0
206 / 206 / 71
Регистрация: 25.02.2014
Сообщений: 569
18.02.2015, 20:21 6
Лучший ответ Сообщение было отмечено vlakuz как решение

Решение

vlakuz,
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
System.out.println("Введите пары типа идентификатор = значение значение");
        System.out.println("Для выхода из программы нажмите q");
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String s="";
        PrintWriter printWriter = new PrintWriter(new File("E:\\11.txt"));
        Pattern pattern = Pattern.compile(".+=.+");
        while (!s.equals("q")) {
            s = reader.readLine();
            if(!pattern.matcher(s).matches()) System.out.println("repeat");
            else printWriter.println(s);
            
        }
        printWriter.close();
1
0 / 0 / 0
Регистрация: 15.02.2015
Сообщений: 116
18.02.2015, 20:54  [ТС] 7
Kochmarik, спасибо вам, обьясните пожалуйста почему мы printWriter.close(); после цикла сделали ?
0
206 / 206 / 71
Регистрация: 25.02.2014
Сообщений: 569
18.02.2015, 20:56 8
vlakuz, Потому что его нужно закрывать, после того как туда все записали
0
0 / 0 / 0
Регистрация: 15.02.2015
Сообщений: 116
18.02.2015, 21:24  [ТС] 9
Kochmarik, точно! Спасибо вам!!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.02.2015, 21:24

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Ввод\вывод в файл\из файла
#include <fstream> #include <iostream> #include <stdio.h> #include <stdlib.h> #include...

Файл: Ввод / вывод в / из файла
В общем, создавал двумя способами. Это ломает мне мозг. Только начал изучать c++. Подошел к такому...

Ввод из файла и вывод в файл
procedure fayl(); begin assign(f, 'C:\file3.txt'); reset(f); while not eof(f) do begin...

Ввод/вывод в файл/из файла
Не работает=( что нужно сделать, чтобы заработало? что я сделал не так? #include <stdio.h>...


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

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

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