当前位置: 首页 > 面试题库 >

如何在Android中的原始文件夹中引用文件

蒲功
2023-03-14
问题内容

我只想创建一个像这样的File对象

File myImageFile = new File ("image1") ;

但是它给了我 FileNotFoundException的 例外我
如何在我的原始文件夹中引用一个文件

编辑: 其实我想做这样的事情

MultipartEntity multipartEntity= new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); multipartEntity.addPart("uploaded", new FileBody(new File("myimage")));


问题答案:

这是2个功能。一种是从RAW读取的,另一种是从资产读取的

/**
 * Method to read in a text file placed in the res/raw directory of the
 * application. The method reads in all lines of the file sequentially.
 */

public static void readRaw(Context ctx,int res_id) {

    InputStream is = ctx.getResources().openRawResource(res_id);
    InputStreamReader isr = new InputStreamReader(is);
    BufferedReader br = new BufferedReader(isr, 8192); // 2nd arg is buffer
                                                        // size

    // More efficient (less readable) implementation of above is the
    // composite expression
    /*
     * BufferedReader br = new BufferedReader(new InputStreamReader(
     * this.getResources().openRawResource(R.raw.textfile)), 8192);
     */

    try {
        String test;
        while (true) {
            test = br.readLine();
            // readLine() returns null if no more lines in the file
            if (test == null)
                break;
        }
        isr.close();
        is.close();
        br.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

}

并从资产文件夹

/**
 * Read a file from assets
 * 
 * @return the string from assets
 */

public static String getQuestions(Context ctx,String file_name) {

    AssetManager assetManager = ctx.getAssets();
    ByteArrayOutputStream outputStream = null;
    InputStream inputStream = null;
    try {
        inputStream = assetManager.open(file_name);
        outputStream = new ByteArrayOutputStream();
        byte buf[] = new byte[1024];
        int len;
        try {
            while ((len = inputStream.read(buf)) != -1) {
                outputStream.write(buf, 0, len);
            }
            outputStream.close();
            inputStream.close();
        } catch (IOException e) {
        }
    } catch (IOException e) {
    }
    return outputStream.toString();

}


 类似资料:
  • 我在res目录中创建了raw文件夹,并插入了mp3文件。我试着用mediaplayer播放我的mp3文件。这是我的消息来源- 但是当我运行应用程序时,我有exception.this是我的logcat异常- 我如何解决我的问题?如果有人知道解决办法,请帮助我。提前感谢。

  • 我尝试从res/raw文件夹播放音频文件,这是我用来播放文件的代码,这不会产生任何错误,并且我的设备音量最大,但没有任何声音。我尝试了MP3和WAV文件。 启动后我在 LogCat 上收到以下消息 帮助我解决这个问题,将不胜感激。

  • 我正在尝试传递一个位于我的应用程序的res/raw目录中的图像以及共享意图。 我遵循了FileProvider文档中描述的流程,下面是我的代码: Androidanifest.xml 我的活动中的代码: 由于无法访问我在其他应用程序中获取的文件,因此上述操作无效: java.io.FileNotFoundException:FILE_PATH:打开失败: EACCES(权限拒绝) 知道我做错了什么

  • 我用一个布局和两个按钮构建了一个简单的应用程序,这是我的代码。。 我的原始文件夹包含:atur.mp3、back.mp3、belajar.mp3、level.mp3、skip.mp3和start.mp3...当我单击按钮静音时,播放back.mp3,但当我单击按钮播放时,原始文件夹中的所有mp3都被播放...有评论吗?

  • 我正在创建一个javafx GUI应用程序,我的项目是一个maven配置的项目。我希望能够在我的控制器中引用我的fxml文件,如下所示: 其中,我的main.fxml文件位于src/main/resources文件夹中,而我的控制器位于src/main/java文件夹中。我该怎么做呢?我的src/main/resources文件夹在构建路径中,并且我能够从src/main/java文件夹中的类调用

  • 我想在我的soundboard应用程序中添加共享选项,现在我在从原始文件夹中获取音频文件时遇到了问题。 我正在尝试使用该代码制作共享功能: 但Messenger和其他应用程序无法从我的应用程序中获取音频文件。我应该先编写脚本将音频保存在手机存储器中,然后使用该文件在其他应用程序中共享吗?