с этой проблемой у меня есть, я хотел бы поразить двух зайцев одним выстрелом.Как добавить пользовательский ввод в новую строку, а также избежать возможных дубликатов в моем файле .CSV с помощью FileWriter?
В настоящее время я пытаюсь вывести пользовательский ввод из текстовых полей в существующий файл .CSV с данными, уже находящимися внутри. Моя первая проблема связана с невозможностью добавления в новую строку, мой код в настоящее время добавляет к последнему элементу в файле .CSV, тем самым создавая еще более длинную строку, а не новую строку.
Далее, я хотел бы проверить мой .CSV на возможные дубликаты ввода пользователей. Если пользователь хочет добавить банану в список, а код проверяет файл .CSV и находит в нем банан, мы можем успешно выполнить ошибку и предупредить пользователя.
Вот мой код в настоящее время, чтобы попытаться попробовать и добавить в новую строку, но так или иначе это просто не работает:
String fileName = "temp.csv";
try {
FileWriter fileWriter =
new FileWriter(fileName, true);
BufferedWriter bufferedWriter =
new BufferedWriter(fileWriter);
bufferedWriter.write("\n" + fruitNameField.getText());
bufferedWriter.write(',');
bufferedWriter.write(quantityOfFruitField.getText());
bufferedWriter.write(',');
bufferedWriter.write(fruitLocationField.getText());
//bufferedWriter.write(',');
bufferedWriter.close();
}
catch(IOException ex)
{
System.out.println("Error writing to file" + fileName + "'");
}
В то время как я хотел 3 различных данных, вводимых пользователем, и для добавления к новой линии, код выше заканчивается, выводя следующим образом: Банана, 2, storeOrange, 3, store. Кажется, что он игнорирует новую командную строку.
Теперь для моей второй проблемы, проверки дубликатов. В течение жизни я не могу найти никаких ресурсов, связанных с проверкой дубликатов в текстовом файле с помощью java.
Этот вопрос предназначен, главным образом, для добавления к новой строке, но если бы я мог получить любую помощь в этом, это было бы удивительно.
Насколько я знаю, для проверки дубликатов я считаю, что мне придется импортировать текстовый файл и записать его в массив, но что, если это большой файл?
Как только мой файл находится в массиве, я проверю, является ли пользовательский ввод равным любому тексту, находящемуся внутри массива, и если это так, выведите ошибку. Это мой подход по этому вопросу, пожалуйста, скажите мне, могу ли я улучшить это в любом случае.
Спасибо за вашу помощь, очень признателен.
BufferedWriter имеет метод Newline(). –
Спасибо, что решил половину моей проблемы! – juiceb0xk