【发布时间】:2020-04-29 00:41:56
【问题描述】:
我有一个应用程序,它使用 .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;
}
我的应用程序现在已编辑导入的数据(存储在字符串数组列表中)并将其返回为单个字符串。数据已返回为 .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;
}
我现在希望将字符串保存回原始文件,覆盖最初存储在那里的内容,但保持相同的位置和文件名。如何使用文件数据首次复制到我的应用程序时的 URI 执行保存/覆盖功能?
【问题讨论】:
标签: android csv uri export-to-csv