@Override
public void onActivityResult(int requestCode, int resultCode,
Intent data) {
// TODO Auto-generated method stub
if (resultCode != RESULT_OK) {
tvFileContent.setText("未成功获得文件" );
tvFileName.setText("未成功获得文件" );
} else {
readFile(data.getData());
}
}
private void readFile(Uri returnUri) {
Context context = getActivity();
ParcelFileDescriptor inputPFD;
//获取文件句柄
try {
inputPFD = context.getContentResolver().openFileDescriptor(returnUri, "r" );
} catch (FileNotFoundException e) {
e.printStackTrace();
tvFileContent.setText("获取文件句柄失败" );
tvFileName.setText("获取文件句柄失败" );
return;
}
//获取文件名字和大小
Cursor returnCursor =
context.getContentResolver().query(returnUri, null, null , null, null);
/*
* Get the column indexes of the data in the Cursor,
* move to the first row in the Cursor, get the data,
* and display it.
*/
int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
int sizeIndex = returnCursor.getColumnIndex(OpenableColumns.SIZE);
returnCursor.moveToFirst();
tvFileName.setText("文件名:" +returnCursor.getString(nameIndex)+", 大小:"+
Long. toString(returnCursor.getLong(sizeIndex))+" B");
returnCursor.close();
//读取文件内容
String content = "";
FileReader fr = null;
char[] buffer = new char[1024];
try {
StringBuilder strBuilder = new StringBuilder();
fr = new FileReader(inputPFD.getFileDescriptor());
while (fr.read(buffer) != -1) {
strBuilder.append(buffer);
}
fr.close();
content = strBuilder.toString();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (content.length() != 0) {
tvFileContent.setText(content);
} else {
tvFileContent.setText("<内容空>" );
}
try {
inputPFD.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void onActivityResult(int requestCode, int resultCode,
Intent data) {
// TODO Auto-generated method stub
if (resultCode != RESULT_OK) {
tvFileContent.setText("未成功获得文件" );
tvFileName.setText("未成功获得文件" );
} else {
readFile(data.getData());
}
}
private void readFile(Uri returnUri) {
Context context = getActivity();
ParcelFileDescriptor inputPFD;
//获取文件句柄
try {
inputPFD = context.getContentResolver().openFileDescriptor(returnUri, "r" );
} catch (FileNotFoundException e) {
e.printStackTrace();
tvFileContent.setText("获取文件句柄失败" );
tvFileName.setText("获取文件句柄失败" );
return;
}
//获取文件名字和大小
Cursor returnCursor =
context.getContentResolver().query(returnUri, null, null , null, null);
/*
* Get the column indexes of the data in the Cursor,
* move to the first row in the Cursor, get the data,
* and display it.
*/
int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
int sizeIndex = returnCursor.getColumnIndex(OpenableColumns.SIZE);
returnCursor.moveToFirst();
tvFileName.setText("文件名:" +returnCursor.getString(nameIndex)+", 大小:"+
Long. toString(returnCursor.getLong(sizeIndex))+" B");
returnCursor.close();
//读取文件内容
String content = "";
FileReader fr = null;
char[] buffer = new char[1024];
try {
StringBuilder strBuilder = new StringBuilder();
fr = new FileReader(inputPFD.getFileDescriptor());
while (fr.read(buffer) != -1) {
strBuilder.append(buffer);
}
fr.close();
content = strBuilder.toString();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (content.length() != 0) {
tvFileContent.setText(content);
} else {
tvFileContent.setText("<内容空>" );
}
try {
inputPFD.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}