我正在开发一个应用程序,它将手机中的 .txt 文件作为输入并将其打印在 TextView 上,
public class MainActivity extends AppCompatActivity {
Button button;
Intent intent;private StringBuilder text = new StringBuilder();
private InputStream getResources(String s) {
return null;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.btn);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("text/plain");
startActivityForResult(intent, 7);
Log.v("###", "parent " + getParent());
}
});
} @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
String Fpath = data.getDataString();
// final String fileName = ""+Fpath;
Log.v("###", "yo " +Fpath);
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case 7:
if (resultCode == RESULT_OK) {
setContentView(R.layout.activity_main);
Log.v("###", "hellow");
setContentView(R.layout.activity_main);
BufferedReader reader = null;
try {
reader = new BufferedReader(
new InputStreamReader(getAssets().open("filename.txt")));
//change code
// do reading
String mLine;
while ((mLine = reader.readLine()) != null) {
text.append(mLine);
text.append('\n');
}
} catch (IOException e) {
String PathHolder = data.getData().getPath();
Toast.makeText(MainActivity.this, PathHolder, Toast.LENGTH_LONG).show();
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
//log the exception
}
}
TextView output = (TextView) findViewById(R.id.Txt);
output.setText((CharSequence) text);
}
}
}
}
}
一切都很好,但线路
new InputStreamReader(getAssets().open("filename.txt")));
从 Assets 文件夹中获取文件,
帮我从我的手机中获取文件,
资产文件夹中的文件正确打开,但我希望从我的手机中选择它
您可以获取文件路径onActivityResult
您从文件管理器中选择的。
Uri PathHolder = data.getData();
UPDATE
上面的线给你文件的 uri您从存储中选择的。然后你可以轻松地从该 Uri 获取文件。
刚刚忘记了getAssets
使用以下方法从文件中读取。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Uri PathHolder = data.getData();
FileInputStream fileInputStream = null;
StringBuilder text = new StringBuilder();
try {
InputStream inputStream = getContentResolver().openInputStream(PathHolder);
BufferedReader r = new BufferedReader(new InputStreamReader(inputStream));
String mLine;
while ((mLine = r.readLine()) != null) {
text.append(mLine);
text.append('\n');
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)