2 afrgmd39 afrgmd39 于 2015.07.27 10:21 提问

JAVA如何访问带中文的文件链接,并且读取文件,保存到指定的位置下(非弹窗保存文件) 1C

求助:
一个文件链接例如 http://192.168.0.12:8080/hr/uploads/12_15574/english_name.txt,我通过java自带的url访问,然后获取这个url的输入流,然后将它保存到指定目录下,是成功地。
现在,服务器上的文件已经访问路径是带中文的,例如http://192.168.0.12:8080/hr/uploads/12_15574/english_name.txt,我通过同样的方式来试下,就会报错java.io.FileNotFoundException。
下面给出我的部分代码,还请熟悉java的朋友们能给点帮助:
图片说明

9个回答

strutce
strutce   Ds   Rxr 2015.07.27 10:55

估计是路径中中文乱码问题

caozhy
caozhy   Ds   Rxr 2015.07.27 11:00

对中文文件名做一个urlencode编码

Ydc__
Ydc__   2015.07.27 11:25

楼上说的不错可以试试

Evankaka
Evankaka   Ds   Rxr 2015.07.27 12:21

final_request.setCharacterEncoding("UTF-8");
StringBuilder buffer = new StringBuilder();
BufferedReader reader=null;
try{
reader = new BufferedReader(new InputStreamReader(final_request.getInputStream(),"UTF-8"));
String line=null;
while((line = reader.readLine())!=null){
buffer.append(line);
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(null!=reader){
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
buffer.toString()

sina_2831808769
sina_2831808769   Rxr 2015.07.27 22:21

估计是路径中中文乱码问题

blueZhangFun
blueZhangFun   2015.07.27 23:58

如果带有中文最好能使用英文,要是必须用中文改编码方式

CSDNXIAOD
CSDNXIAOD   2015.07.28 09:09

读取文件的指定位置
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

ClementAD
ClementAD   2015.07.28 20:36

使用URLEncoder.encode(url, "utf-8");

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2015.10.26 09:52

把你的URL的路径复制到浏览器的输入地址栏,看看能不能正常访问呢?

Csdn user default icon
上传中...
上传图片
插入图片