Цель моего кода - заменить определенное текстовое значение в моем файле .CSV на пользовательский ввод текстового поля.Объект [] не может быть преобразован в String []
У моего .CSV файла есть значения, содержащиеся по имени: hey,hi
. Если я просто захочу заменить «hey», тогда я соберу вход из текстового поля и замените «hey» на «bye». Выход: bye,hi
.
В моем коде, я считаю, что читаю в своем файле и записываю содержимое файла в список, разделенный запятыми.
Затем я перебираю список и заменяю экземпляр пользовательского ввода в списке, с другим пользовательским вводом и записываем его обратно в файл.
Однако я не могу записать его обратно в файл, поскольку я получаю объект [] не может быть преобразован в String [] error. Таким образом, я зациклился на том, как заменить экземпляр ввода пользователя в текстовом файле.
Вот мой код:
try{
//Convert user input into strings
String strSerial = editSerialField.getText();
String strLocation = editLocationField.getText();
//Read existing file
CSVReader reader = new CSVReader(new FileReader("test test.txt"), ',');
List myEntries = reader.readAll();
//Iterate through my array
for (int i = 0; i < myEntries.size(); i++)
{
//If an entry matches the user input
if (myEntries.get(i).equals(strSerial))
{
//Set the match to the user input from strLocation
myEntries.set(i, strLocation);
break;
}
}
//Write to existing file
CSVWriter writer = new CSVWriter(new FileWriter("test test.txt"), ',');
//Error is here**********************
//Write the new string with the replaced word OVER the same file
writer.writeNext(myEntries.toArray(new String[myEntries.size()]));
writer.close();
}catch (IOException e)
{
System.out.println(e);
}
}
Как изменить свой код так, чтобы он пишет свои изменения в файл .CSV?
Используйте generics для изменения переменной myEntries следующим образом. Список myEntries = reader.readAll(); –
dammina