java中File的声明使用URI报错

想用网络资源写服务器

[list]
[*][code="java"]URI ui = new URI("http://xxx.xxxxxxx.com/xxxxxxxx/文件名.xml");
[*] File f = new File(ui);
[*]

[*] FileInputStream is = new FileInputStream(f) ;
[*] BufferedReader reader = new BufferedReader(new java.io.InputStreamReader(is,"utf-8"));
[*]

[*] String inputLine = null;
[*] while ((inputLine = reader.readLine()) != null) {
[*] System.out.println(inputLine);
[*] }[/code]
[/list]

报错如下

[code="java"]Exception in thread "main" java.lang.IllegalArgumentException: URI scheme is not "file"
at java.io.File.(Unknown Source)
at something.Test1.main(Test1.java:19)[/code]

这是和解?我直接在网页输入该URI可以访问到

2个回答

用这种方式:
[code="java"]URL url = new URL("http://127.0.0.1:8080/cfStruts2Ex2/");
URLConnection urlConn = url.openConnection();

System.out.println("Date: " + new Date(urlConn.getDate()));
System.out.println("Content-Type: " + urlConn.getContentType());

int length = urlConn.getContentLength();
System.out.println("Content-Lentgth: " + length);

if (length > 0) {
System.out.println("========== Content ==========");
InputStream input = urlConn.getInputStream();

int i = length;
int c;
while ((c = input.read()) != -1 && --i > 0) {
    System.out.print((char) c);
}
input.close();

} else {
System.out.println("No Content.");
}[/code]

haishangfeiji
haishangfeiji 问题解决了,非常感谢!
7 年多之前 回复

File f = new File(ui); 访问的是file协议

你现在URL("http://……") 怎么能拿到文件呢?

直接使用new HttpURLConnection().getInputStream()

yunzhu666
yunzhu666 开涛老师讲的是原理,我是菜鸟面对菜鸟,知道人要的是代码
7 年多之前 回复
haishangfeiji
haishangfeiji 也非常感谢你,你的答案也给了我不少启发
7 年多之前 回复
jinnianshilongnian
jinnianshilongnian 哈哈,
7 年多之前 回复
yunzhu666
yunzhu666 开涛老师每次都好快啊,总算抢在您前面回复了一个 hoho
7 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐