无法将文件路径转换为字节数组android [重复]

Posted

技术标签:

【中文标题】无法将文件路径转换为字节数组android [重复]【英文标题】:Failed in converting File path to byte array android [duplicate] 【发布时间】:2018-03-15 12:12:00 【问题描述】:

我正在尝试将文件转换为字节数组格式。选择的实际路径在存储中,但仍然抛出异常“File Not Found”。谁能帮我解决这个问题?

感谢您宝贵的时间!..

调用文件管理器

btn_click.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(View view) 

            Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
            intent.setType("*/*");
            startActivityForResult(intent, 7);

        
    );

得到响应

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) 
    // TODO Auto-generated method stub

 switch (requestCode) 
        case 7:

    if (resultCode == RESULT_OK) 

        String filePath = data.getData().getPath();
        System.out.println("====== path :   "+filePath);

        File file = new File(filePath);
        byte[] bytesArray = new byte[(int) file.length()];
        FileInputStream fis = null;
        try 
            fis = new FileInputStream(file);
            fis.read(bytesArray); //read file into bytes[]
            fis.close();

            System.out.println("====== bytesArray    "+bytesArray);


         catch (FileNotFoundException e) 
            System.out.println("====== File Not Found.");
            e.printStackTrace();
         catch (IOException e) 
            System.out.println("====== Error Reading The File. IOException");
            e.printStackTrace();
         
      
   

【问题讨论】:

另见this similar question。您没有处理文件。使用ContentResolveropenInputStream()Uri 标识的内容上获得InputStream。不要尝试使用getPath() 【参考方案1】:

添加以下等级其 Apache commons gradle

    compile 'org.apache.commons:commons-io:1.3.2'

然后使用此代码

    byteArray = FileUtils.readFileToByteArray(file);  

【讨论】:

我尝试使用您的建议,当我尝试运行应用程序时,显示错误为错误:任务':app:transformDexArchiveWithExternalLibsDexMergerForDebug'的执行失败。 > com.android.builder.dexing.DexArchiveMergerException: 无法合并 dex 对此有什么想法吗? 仍然抛出“找不到文件”。但我的文件路径位置显示为 /document/primary:file/myDoc_4.pdf。

以上是关于无法将文件路径转换为字节数组android [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何将字节数组转换为流 [重复]

有没有办法在android studio中将音频文件转换为字节数组

Android将字节数组从Camera API转换为颜色Mat对象openCV

Java将字节数组转换为十六进制字节数组[重复]

如何将字节数组转换为字符串[重复]

将字节数组转换为 wav 文件