Ошибка при изменении значения в файле csv с использованием файла произвольного доступаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Ошибка при изменении значения в файле csv с использованием файла произвольного доступа

Сообщение Anonymous »


Я пытаюсь указать цену продажи автомобиля, который продается в файле Vehicle.csv. Вот метод для класса VehicleData, который я создал.

В файле csv есть пять столбцов: carPlate, carModel,acquiredPrice, carStatus(1 — не продано и 0 — продано) и проданная цена.

public static void updateVehicleData() { Ввод сканера = новый сканер(System.in); System.out.print("Пожалуйста, введите номер автомобиля: "); Строка carPlate = input.nextLine(); пытаться { RandomAccessFile raf = новый RandomAccessFile("vehicle.csv", "rw"); while (raf.getFilePointer() < raf.length()) { длинный currentPosition = raf.getFilePointer(); Строковая строка = raf.readLine(); String[] VehicleData = line.split(","); // Если carPlate совпадает, обновите эту строку если (carPlate.equals(vehicleData[0])) { окончательный int CARSTATUS = 0; System.out.print("Пожалуйста, введите цену продажи автомобиля: "); Строка проданная цена = input.nextLine(); // Создаем новую строку с обновленными данными Строка updateLine = carPlate + "," + VehicleData[1] + "," // Предполагаем, что вы хотите сохранить модель автомобиля + VehicleData[2] + "," // Предполагаем, что вы хотите сохранить приобретенную цену + КАРСТАТУС + "," + цена продажи; // Перемещаем указатель в начало строки raf.seek(currentPosition); // Записываем обновленную строку, дополняя ее при необходимости пробелами Raf.writeBytes(String.format("%-" + line.length() + "s", updateLine)); // Перемещаем указатель в конец строки raf.seek(currentPosition + line.length()); раф.закрыть(); перерыв; } } System.out.println("Данные об автомобиле в файле Vehicle.csv успешно обновлены."); } catch (IOException e) { System.out.println("Произошла ошибка при обновлении данных автомобиля в файле Vehicle.csv."); е.printStackTrace(); } } Когда я указал цену продажи одной из машин, в CSV-файле возникла некоторая путаница. Строка под измененной мной проданной ценой автомобиля поднялась вверх, а рядом с измененной проданной ценой. CarPlate в перепутанной строке также стал единым с проданной ценой, и на него повлияла сумма, которую я вложил.

Если я укажу 10 в качестве проданной цены вместо

... PQR789,Шевроле,121200,0,10 РСТ901,Мицубиси,136700,0,153000 ... стало

... PQR789,Шевроле,121200,0,10ST901,Митсубиси,136700,0,153000 ... Чем больше 0 я добавляю в цену продажи, тем больше стирается номер автомобиля Mitsubishi. Что я могу сделать, чтобы CSV-файл работал правильно?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»