2 chenrenxiang chenrenxiang 于 2015.07.13 11:09 提问

Android FileNotFoundException

主要内容是:我自己配置了tomcat服务器,然后想通过程序下载服务器里面的文件。
总之是要哭了,弄了好久没没解决这个bug。
先上logcat吧:
图片说明

可以看到,我自己输出了一个 “from here”,来自下面这个方法
/**
* 通过服务器地址获取输入流InputStream
*/
public InputStream getInputStreamFromUrl(String urlStr) throws IOException {
URL url = null;
InputStream inputStream = null;
try {
urlStr=URLDecoder.decode(urlStr, "UTF-8");
url = new URL(urlStr);
HttpURLConnection urlConn = (HttpURLConnection) url
.openConnection();
inputStream = urlConn.getInputStream();

    } catch (IOException e) {
        // TODO Auto-generated catch blocks
        System.out.println("from here");
        e.printStackTrace();
    }
    return inputStream;
}

应该也就是说,错误出现在这个方法里面,但是呢,在下载这首歌之前我还下载了一个xml文件,而且文件是下载成功的。
服务器里面的文件如下:
图片说明
我在下载歌曲之前下载了resources.xml文件,文件下载成功。然后接着下载mp3文件和lrc文件,就会出现这个异常。找了一上午错了还是不能解决,求解答~~


5个回答

oyljerry
oyljerry   Ds   Rxr 2015.07.13 11:18

看上去可能是文件编码问题,你的xml是英文,可以支持,但是mp3,lrc是中文,估计你的程序或者服务器支持有问题,所以找不到文件

oyljerry
oyljerry 回复chenrenxiang: windows文件系统是用的Unicode编码,所以你客户端传过来的路径要转换,从UTF8到Unicode
大约 3 年之前 回复
chenrenxiang
chenrenxiang 确实是文件名称的问题,把文件名改成英文就可以下载,但是如果要下载中文名称文件有什么解决措施吗?
大约 3 年之前 回复
chenrenxiang
chenrenxiang 但是我下载 You can'T... 这首歌的时候也会出错,而且已经将地址utf-8编码了呀。。
大约 3 年之前 回复
qq915845584
qq915845584   2015.07.13 11:59

用浏览器打开报错的那个地址可以下载吗?

qq915845584
qq915845584 服务器上用英文,下载后命名用中文。 或者在服务端收到请求的时候将编码改成utf8
大约 3 年之前 回复
chenrenxiang
chenrenxiang 我刚刚把 青山黛玛.mp3 名字改成 qsdm.mp3 就下载成功了,看来确实是文件命名问题,只是如果要下载中文名称文件或者其他名称的文件不知道怎么解决?
大约 3 年之前 回复
bhdgx
bhdgx   2015.07.13 12:52

你在客户端做了URL编码,在服务器端有没有做相应的解码操作

chenrenxiang
chenrenxiang 请问这个怎么做呢?
大约 3 年之前 回复
Arnold9009
Arnold9009   2015.07.13 13:36

差不多应该就是编码的问题

CSDNXIAON
CSDNXIAON   2015.07.16 15:25

android中奇怪的FileNotFoundException
android神奇的“FileNotFoundException”
Android Read FileNotFoundException
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android 读写文件 FileNotFoundException 异常
照着《Android开发艺术探索》一书敲Serializable接口的例子时,抛出异常: FileNotFoundException: Caused by: android.system.ErrnoException: open failed: EROFS (Read-only file system)
Android 6.0系统读写文件出现FileNotFoundException:EACCES (permission denied)解决办法
先检查你的AndroidManifest.xml是否已经有读写权限:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />然后在获取文件流的时候,报出异
android开源项目SmartImageView设置网络图片url时抛出java.io.FileNotFoundException
package com.loopj.android.image; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; import android.content.Context; import android.graphics.Bitmap; import an
android FileNotFoundException(Is a Directory)解决办法
解决android开发过程中FileNotFoundException(Is a directory)问题
【文件】FileOutputStream 出现 FileNotFoundException
1、如题,这个问题很奇葩,同样的代码,有时候会出错,有时候就不会; 2、 首先要知道,FileOutputSteam 是不会创建不存在的路径,所以需要先创建路径,再创建文件 ``` File photoFileDir = new File(Environment.getExternalStorageDirectory() + "/ClipHeadPhoto/cache/"); // 注意path参数,最后是有斜
文件读写并处理FileNotFoundException异常
package lianxi;   import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.
【总结】关于fileoutputstream应用中的FileNotFoundException问题的解决办法
在使用fileoutputstream时经常出现FileNotFoundException问题,即便是同一个程序改了一下包名再chongxin
FileNotFoundException问题的解决
最近在做一个解压压缩包任务,在操作的过程中,老是在报一个错误,先看下错误的详情图片吧! 一直在显示系统找不到指定的路径,而这错误也很明显地定位到GzipUtils工具类中,自己仔细看了下,感觉没有什么问题呀,检查了n多遍也没有发现问题. 具体报错的这行代码如下所示: 很明显问题就是出在new FileOutputStream()这里面,相信大家都清楚,字符输出流内的文件路径,如
Android Studio 在run时报的异常 Failed to run command file not found FileNotFoundException
Android Studio 在run时报的异常 Failed to run command file not found FileNotFoundException在github上下载项目,导入后 有时不注意,在build完后,run时会报现个FileNotFoundException,会提示如下的错误: Error:Execution failed for task ‘:sample:de
HTTPUrlConnection 出现 FileNotFoundException 的问题
URL url = new URL(strUrl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.getInputStream() HTTPUrlConnection 在 getInputStream出现 FileNotFoundException 的问题,可能有两种情况: 1.