我正在尝试制作一个应用程序,在该应用程序中,我可以从用户那里获取文本输入,并将其存储在文本文件中,然后将该文件上传到firebase,以便以后可以检索。
问题是我无法获取文件的正确URI。请帮助我获取URI。
这是代码
public class TextUpload extends AppCompatActivity {
private void writeToFile(String data, Context context) throws FileNotFoundException {
mediaFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath());
if (!mediaFile.exists()) {
mediaFile.mkdir();
}
byte[] data2 = data.getBytes();
FileOutputStream f = new FileOutputStream(new File(mediaFile, "textfile.txt"));
try {
f.write(data2);
f.flush();
f.close();
} catch (IOException e) {
e.printStackTrace();
}
fileUri = Uri.fromFile(mediaFile);
Log.d("TAHH" , "URI = "+fileUri);
}
}
这是我要存储在fileUri
上的值
URI = file:///storage/emulated/0
[
请帮助我获取突出显示的文件的URI。
答案 0 :(得分:2)
主要问题是您正在读取mediaFile
的路径,该路径是目录(而不是文件本身)。 mediaFile
是所需文件的父目录。
因此,更改为:
mediaFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath());
if (!mediaFile.exists()) {
mediaFile.mkdir();
}
byte[] data2 = data.getBytes();
// Hold the reference to the file that you are writting
File txtFile = new File(mediaFile, "textfile.txt")
FileOutputStream f = new FileOutputStream(txtFile );
try {
f.write(data2);
f.flush();
f.close();
} catch (IOException e) {
e.printStackTrace();
}
// Here, use txtFile instead of mediaFile
fileUri = Uri.fromFile(txtFile);
Log.d("TAHH" , "URI = "+fileUri);