我从存储中选择了一个文本文件并获取了它的路径(FilePath
),我正在尝试读取该文本文件的内容并将其放入edittext ..我正在使用下面的代码来获取文本文件数据并将其放入edittext(eTPronounce)
File sdcard = Environment.getExternalStorageDirectory();
//Get the text filea
File file = new File(sdcard,FilePath);
//Read text from file
StringBuilder text = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
text.append(line);
text.append('\n');
}
br.close();
}
catch (IOException e) {
//You'll need to add proper error handling here
}
//Find the view by its i
//Set the text
eTPronounce.setText(text);
}
});
如果我将FilePath(在第二行)替换为有文本文件的任何目录,它就可以工作。例如,如果我用"下载/ text.txt"替换FilePath。有用 。 我使用this链接获取FilePath
感谢
答案 0 :(得分:1)
我认为你应该使用下面的构造函数
File(File dir, String name)
或者您可以使用
File(String path)
如果您要指定目录名,那么您只需要提供文件名,如第一个示例所示。否则,您可以使用第二个文件路径
答案 1 :(得分:1)
if(resultCode==RESULT_OK){
if(data == null || data.getData == null){
//Log.e()
return;
}
FilePath = getPath(data.getData(),mActivity);
setfilename.setText(FilePath);
}
public static String getPath(Uri uri,Context ctx) {
String res = null;
if(null==uri){
return res;
}
if (uri != null && uri.toString().startsWith("file://")) {
return uri.toString().substring("file://".length());
}
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = ctx.getContentResolver().query(uri, proj, null, null, null);
if(cursor!=null){
if(cursor.moveToFirst()){
try {
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
res = cursor.getString(column_index);
}catch (Exception ignored){
}finally {
closeCursor(cursor);
}
}
}
closeCursor(cursor);
return res;
}