У меня есть приложение, которое импортирует данные из CSV-файла, используя его URI и сканер. Это работает так:
private List<String[]> loadCSVfromURI(Uri file) throws FileNotFoundException, IOException {
Scanner csvFileScanner = new Scanner(new BufferedReader(new InputStreamReader(getContentResolver().openInputStream(file))));
List<String[]> csvROW = new ArrayList<>();
int tempRow = 0;
while(csvFileScanner.hasNextLine()){
String line = csvFileScanner.nextLine(); // Get single line from reader
String[] splitLine = line.split(",");
csvROW.add(tempRow, splitLine);
tempRow++;
}
return csvROW;
}
Мое приложение теперь отредактировало импортированные данные (которые были сохранены в списке массивов String) и вернул их в одну строку. Данные были возвращены в формате .CSV, например, так.
private String formatForCSV() {
final String delimeter = "\n";
StringBuilder formatCSVdata = new StringBuilder();
String saveCSVrow;
for(String[] thisRow: curCSV){
saveCSVrow = String.join(",",thisRow);
saveCSVrow = saveCSVrow + delimeter;
formatCSVdata.append(saveCSVrow);
}
String saveCSV = formatCSVdata.toString();
return saveCSV;
}
Теперь я sh, чтобы сохранить строку обратно в исходный файл, перезаписав то, что было изначально сохранено там, но сохранив то же местоположение и имя файла. Как я могу выполнить функцию сохранения / перезаписи, используя URI с момента, когда данные файлов были впервые скопированы в мое приложение?