所以我想要实现的是从url读取.txt文件的内容:
BufferedReader reader = null;
File f = new File ("www.website.com/filename.txt");
if (f.exists()) {
try {
reader = new BufferedReader(new FileReader(f));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
String line = "";
try {
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
即使我在.txt文件中有内容(只有一行),当我打印该行时没有显示任何内容。从URL或硬盘驱动器读取文件是不同的,还是我做错了什么?
答案 0 :(得分:2)
File
类用于“普通”文件系统上的文件(通常是本地的,但可能是网络的) - 而不是URL。基本上它是指您可以直接在命令行上使用(例如读取或编辑)的文件类型,不涉及HTTP 1 。
这就是URL
类的用途。因此,您可以使用它(使用URLConnection
)或使用专用的HTTP第三方库,例如Apache HttpClient
库。
1 我敢肯定有一些shell允许使用URL,就像它们是本地文件名一样,但我说的是更传统的方法。
答案 1 :(得分:1)
我尝试拥有自己的,这有效......
URL urlObj=new URL("http://www.example.com/index.html"); //This can be any website' index.html or an available file
//we basically get HTML page/file
Scanner fGetter=new Scanner(urlObj.openStream());
while(fGetter.hasNext()){
System.out.println(""+fGetter.nextLine());
}
我认为“example.com”可以在没有任何法律问题的情况下使用:)
答案 2 :(得分:0)
我实际上并不知道,但我认为你不能从这样的URL读取文件。您需要向该URL发送HTTP GET请求以读取其中的信息。
请参阅对象HttpURLConnection
。
http://docs.oracle.com/javase/7/docs/api/java/net/HttpURLConnection.html