我正在尝试从Firebase存储下载文本文件,并根据首选项将其值显示给用户。我只需要一个代码片段。我试过但失败了。
我得到的错误:
W/System.err: java.io.FileNotFoundException:
/data/user/0/com.ritesh.excelfiletest/files/text.txt
码:
private void download() {
StorageReference sr = FirebaseStorage.getInstance().getReference().child("text.txt");
Log.d("keys tasksnapshot anf", sr.toString());
try {
File localFile = File.createTempFile("text", "txt");
sr.getFile(localFile)
.addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
@Override
public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {
Log.d("keys: tasksnapshot", taskSnapshot.toString());
}
});
} catch (Exception e) {
e.printStackTrace();
}
openFile();
}
private void openFile() {
FileInputStream fis = null;
try {
fis = openFileInput("text.txt");
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader bufferedReader = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
sb.append(line);
}
TextView textView = findViewById(R.id.tv);
textView.setText(sb.toString());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
我没有找到我希望的解决方案,但我稍微更改了代码。这里是:
我也很感激,如果有人告诉我为什么上面的“文件”不起作用。
private void download(String s) {
StorageReference sr = FirebaseStorage.getInstance().getReference().child("text.txt");
try {
File localFile = File.createTempFile("text", "txt");
Uri.Builder uri = new Uri.Builder();
uri.appendEncodedPath(getFilesDir()+"/text.txt");
Uri u = uri.build();
Log.d("keysss byte transf", u.toString());
sr.getFile(u)
.addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
@Override
public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {
}
});
} catch (Exception e) {
e.printStackTrace();
}
openFile();
}