@KreMbI4

Добавление записи в.txt на Java?

Программа записывает в файл 1.txt , но не сохраняет.
Во время нового запуска в файле 1.txt все стирается, а во время выполнения всё ОК. Подскажите как реализовать мини базу данных в текстовом файле?Чтобы записывалось и спрашивало по новой, а при закрытии все записи сохранялись.
p.s. Я новенький в этом. Уже все облазил!(надеюсь понятно спрашиваю).

public class Main {
    static Formatter x;
    static Scanner scn;

    public static void main(String[] args) {
     try{
         x = new Formatter("src//1.txt");
         scn = new Scanner(System.in);
         System.out.println("Число?");
         int a = (int)Double.parseDouble(scn.next());
         System.out.println("Название?");
         String b = scn.next();
         System.out.println("Комментарий?");
         String c = scn.next();
         x.format("Ваше название %s, Ваше %d число, Ваш комментарий %s", b, a, c);
         x.close();
         
     }catch (Exception e){}
    }
}
  • Вопрос задан
  • 2983 просмотра
Решения вопроса 1
@lslayer
Программист и сисадмин
x.format("Ваше название %s, Ваше %d число, Ваш комментарий %s", b, a, c);
    x.flush()
    x.close();


Метод flush() записывает данные.

PS. В комментариях дошли до такого решения:
package tk.lslayer.temp;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.util.Formatter;
import java.util.Scanner;

public class Main {
static Formatter x;
static Scanner scn;

public static void main(String[] args) {
   try{
      x = new Formatter(new BufferedWriter(new FileWriter("src//1.txt", true)));
      scn = new Scanner(System.in);
      System.out.println("Число?");
      int a = (int)Double.parseDouble(scn.next());
      System.out.println("Название?");
      String b = scn.next();
      System.out.println("Комментарий?");
      String c = scn.next();
      x.format("Ваше название %s, Ваше %d число, Ваш комментарий %s", b, a, c);
      x.flush();
      x.close();

   } catch (Exception e) { }
}
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
tolkkv
@tolkkv
Java&Spring, Groovy&Gradle, Linux&Docker, spark
Если используете Java 7+ то советую пользоваться конструкцией try-with-resource
Автоматически правильно и безопасно закрывает файл или другой Closeble объект.
try(Formatter x = new Formatter(new BufferedWriter(new FileWriter("src//1.txt", true)))){
            Scanner scn = new Scanner(System.in);
            System.out.println("Число?");
            int a = (int)Double.parseDouble(scn.next());
            System.out.println("Название?");
            String b = scn.next();
            System.out.println("Комментарий?");
            String c = scn.next();
            x.format("Ваше название %s, Ваше %d число, Ваш комментарий %s", b, a, c);
        } catch (Exception e) { }
Ответ написан
@Takheer
FileOutputStream или FileWriter в помощь
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы