Только часть кода для смысла
У меня есть файл с информации машин(которое создается при первом добавлений). Проблема состоит в том что когда я хочу снова добавить информацию, файл пересоздаётся тем самым удаляя предыдущую информацию о машинах.Как мне это исправить?
Scanner input = new Scanner(System.in);
System.out.println("Меню:\n1)Добавить информацию об ещё одной машине\n2)Посмотреть о имеющихся машинах\n3)Выход");
int number = input.nextInt();
String cars1 ,colorcar1,typecar1;
long sernumcar1;
int yearreleasecar1;
double maxspeedcar1;
InputStream inputStream = System.in;
Reader inputcar = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputcar);
switch (number) {
case 1: {
Main Cars1;
Cars1 = new Main();
Main.setNumbers(Cars1);
System.out.print("Введите название машины: ");
cars1 = bufferedReader.readLine();
System.out.print("Введите цвет машины: ");
colorcar1 = bufferedReader.readLine();
System.out.print("Введите серийный номер машины: ");
String sernumcar11 = bufferedReader.readLine();
sernumcar1 = Long.parseLong(sernumcar11);
System.out.print("Введите год выпуска машины: ");
String yearreleasecar11 = bufferedReader.readLine();
yearreleasecar1 = Integer.parseInt(yearreleasecar11);
System.out.print("Введите максимальную скорость машины: ");
String maxspeedcar11 = bufferedReader.readLine();
maxspeedcar1 = Double.parseDouble(maxspeedcar11);
System.out.print("Введите тип машины: ");
typecar1 = bufferedReader.readLine();
Cars1.namecar = cars1;
Cars1.colorcar = colorcar1;
Cars1.sernum = sernumcar1;
Cars1.yearrelease = yearreleasecar1;
Cars1.maxspeed = maxspeedcar1;
Cars1.typecar = typecar1;
System.out.print("\n\nНазвание машины : " + cars1 + "\n" +
"Максимальная скорость машины: " + maxspeedcar1 + " km\\h\n" +
"Тип машины: " + typecar1 + "\n" +
"Серийный номер мышины: №" + sernumcar1 + "\n" +
"Цвет машины: " + colorcar1 + "\n" +
"Год выпуска машины: " + yearreleasecar1 + "г.\n"
);
File carstxt = new File("C://All_For_You//Study//Cars//Cars.txt");
if (carstxt.exists())
System.out.println("\nСоздание файла не трубется");
else {
carstxt.createNewFile();
System.out.println("\nФайл успешно создан!");
}
try(FileWriter writer = new FileWriter("C://All_For_You//Study//Cars//Cars.txt", false))
{
writer.write(Main.numbers + "\n"); //Кол-во машин в БД
writer.write(cars1 +"\n"); // Название машины
writer.write(maxspeedcar11 +"\n"); // Макс. скорость машины
writer.write(typecar1+"\n"); // Тип машины
writer.write(sernumcar11+"\n"); // Серийный номер машины
writer.write(colorcar1+"\n"); // Цвет машины
writer.write(yearreleasecar1+"\n"); // Год выпуска машины
writer.flush();
}
catch(IOException ex){
System.out.println(ex.getMessage());
}
System.out.println("\nВыйти в меню программы?\n1)Да\n2)Нет");
int a = input.nextInt();
switch (a) {
case 1: {
main();
}
case 2: {
System.out.println("Выходим...");
System.exit(1);
}
default: {
System.out.println("Вы не ввели требуемое число!");
System.exit(1);
}
}
}
Попробуйте работать через классы Path
, OpenOption
OpenOption[] oo = new OpenOption[] { StandardOpenOption.CREATE, StandardOpenOption.DSYNC, StandardOpenOption.APPEND };
Path path = Paths.get("C:\\Temp\\oo.txt");
try (OutputStream out = Files.newOutputStream(path, oo);
PrintStream outps = new PrintStream(out)) {
outps.println(LocalDateTime.now().format(dtf));
} catch (IOException e) {
e.printStackTrace();
}
Массив "показателей" OpenOption
позволит вам точно задать на каких условиях работать с файлом:
APPEND If the file is opened for WRITE access then bytes will be written to the end of the file rather than the beginning. CREATE Create a new file if it does not exist. CREATE_NEW Create a new file, failing if the file already exists. DELETE_ON_CLOSE Delete on close. DSYNC Requires that every update to the file's content be written synchronously to the underlying storage device. READ Open for read access. SPARSE Sparse file. SYNC Requires that every update to the file's content or metadata be written synchronously to the underlying storage device. TRUNCATE_EXISTING If the file already exists and it is opened for WRITE access, then its length is truncated to 0. WRITE Open for write access.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Как можно обфусцировать Си код через ndk, или как вообще это сделать
начал работать с фрагментами, и возник такой вопрос: Есть ли в Android студии возможность анимировать переход между фрагментами, как Viewpager, но с другой...