tyc*_*czj 3 android file filenotfoundexception
我让用户从SD卡中选择一个文件上传到我的服务器并保存Uri
它返回给我onActivityResult
例:
file:///storage/emulated/0/Download/menu-4.27.13.pdf
Run Code Online (Sandbox Code Playgroud)
当我尝试将其转换为字节数组发送到服务器时,我得到了 FileNotFoundException
if(!fileURI.equals("")){
File pdf = new File(fileURI);
try
{
FileInputStream fin = new FileInputStream(pdf);
byte fileContent[] = new byte[(int)pdf.length()];
fin.read(fileContent);
fin.close();
String pdfString = Base64.encode(fileContent);
sb.append(pdfString);
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch(IOException ioe)
{
ioe.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪
11-04 11:57:30.597: W/System.err(13531): java.io.FileNotFoundException: /file:/storage/emulated/0/Download/menu-4.27.13.pdf: open failed: ENOENT (No such file or directory)
11-04 11:57:30.597: W/System.err(13531): at libcore.io.IoBridge.open(IoBridge.java:409)
11-04 11:57:30.607: W/System.err(13531): at java.io.FileInputStream.<init>(FileInputStream.java:78)
11-04 11:57:30.607: W/System.err(13531): at com.ecm2.mobilemap.services.MessageService.getModifiedElements(MessageService.java:2755)
11-04 11:57:30.617: W/System.err(13531): at com.ecm2.mobilemap.services.MessageService.callSync(MessageService.java:2433)
11-04 11:57:30.617: W/System.err(13531): at com.ecm2.mobilemap.services.MessageService.onHandleIntent(MessageService.java:190)
11-04 11:57:30.627: W/System.err(13531): at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
11-04 11:57:30.627: W/System.err(13531): at android.os.Handler.dispatchMessage(Handler.java:99)
11-04 11:57:30.637: W/System.err(13531): at android.os.Looper.loop(Looper.java:137)
11-04 11:57:30.637: W/System.err(13531): at android.os.HandlerThread.run(HandlerThread.java:61)
11-04 11:57:30.637: W/System.err(13531): Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
11-04 11:57:30.647: W/System.err(13531): at libcore.io.Posix.open(Native Method)
11-04 11:57:30.657: W/System.err(13531): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
11-04 11:57:30.657: W/System.err(13531): at libcore.io.IoBridge.open(IoBridge.java:393)
Run Code Online (Sandbox Code Playgroud)
那个File
对象在初始化时不是什么字符串?为什么我得到FileNotFoundException
时,我有Uri
回到了我,当用户选择的文件
njz*_*zk2 11
您Uri
包含file:
需要删除的方案.使用Uri.parse
,你想象你的字符串中包含的Uri,使用uri.getPath()
,你从uri中提取文件路径:
Uri uri = Uri.parse(fileURI);
File pdf = new File(uri.getPath());
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5455 次 |
最近记录: |