【问题标题】:using ContentResolver and openInputStream() (Android)使用 ContentResolver 和 openInputStream() (Android)
【发布时间】:2019-10-06 20:06:36
【问题描述】:

Android 中的新功能和 开发像This 这样的应用程序 最后得到了问题java.io.FileNotFoundException: /document/86: open failed: ENOENT (No such file or directory) 现在我正在研究解决方案 "那如何使用 ContentResolver 和 openInputStream()" 哪位大神帮我看看怎么弄啊

【问题讨论】:

  • 你对InputStream有什么问题?

标签: java android android-contentresolver


【解决方案1】:

如果您尝试制作一个从手机读取文件的应用 试试This

试试这个可能会有帮助

 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 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) {
    Uri PathHolder = data.getData();
    Log.v("###", "yo " + PathHolder);

    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
        case 7:
            if (resultCode == RESULT_OK) {
                setContentView(R.layout.activity_main);

                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();
                }
            }

【讨论】:

  • 输入流等可能需要在 catch 块中关闭。也许使用 try-with-resources。
猜你喜欢
  • 1970-01-01
  • 2018-03-22
  • 2011-01-14
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 2012-01-23
相关资源
最近更新 更多