我正在嘗試讀取存儲在手機內存中的平面文件的內容。但是當我通過嘗試獲取文件地址時,我創建了File對象,這是不可讀的。訪問android中的文本文件
嘗試通過手動傳遞文件的地址來創建它,它的工作原理。
的問題是,我無法從URI,讓我的意圖
在這裏,我打開Android文件瀏覽器
btnAdjuntar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("text/plain");
Intent chooser = Intent.createChooser(intent, "Elige App");
if (chooser.resolveActivity(getPackageManager()) != null) {
startActivityForResult(chooser, COD_ABRIR_FICHERO);
}
}
});
在這裏,我收到意向
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == COD_ABRIR_FICHERO) {
if (resultCode == RESULT_OK) {
String ruta = data.getData().getPath();
String lectura;
try {
lectura = leerArchivo(ruta);
} catch (Exception e) {
lectura = e.getMessage();
}
Toast.makeText(getApplicationContext(), lectura, Toast.LENGTH_LONG).show();
}
}
}
該地址
拋出異常,並且您有此消息: /document/primary:Documents/PruebaArchivo.txt:打開失敗:ENOENT(沒有這樣的文件或目錄)
方法leerArchivo
public String leerArchivo(String ruta) throws FileNotFoundException, IOException {
String cadena;
String lectura = "";
File file = new File(ruta);
FileReader f = new FileReader(file);
BufferedReader b = new BufferedReader(f);
while ((cadena = b.readLine()) != null) {
lectura += cadena;
}
b.close();
return lectura;
}
已權限讀取外部存儲器被接受
非常感謝,它一直非常有幫助 –