-1

所以我想要实现的是从 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 或硬盘读取文件是否不同,或者我做错了什么?

4

3 回答 3

2

该类File适用于“普通”文件系统(通常是本地的,但可能是联网的)上的文件,而不是 URL。基本上,它适用于您可以直接在命令行上使用(例如读取或编辑)的那种文件,不涉及 HTTP 1

这就是URL上课的目的。因此,您可以使用它(使用URLConnection)或使用专用的 HTTP 3rd 方库,例如ApacheHttpClient库。


1我确信有一些 shell 允许使用 URL,就好像它们是本地文件名一样,但我说的是一种更传统的方法。

于 2013-07-14T18:47:04.943 回答
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”可以在没有任何法律问题的情况下使用:)

于 2013-07-14T19:06:51.963 回答
0

我实际上不知道,但我认为您不能从这样的 URL 读取文件。您需要向该 url 发送 HTTP GET 请求以读取信息。

见对象HttpURLConnectionhttp://docs.oracle.com/javase/7/docs/api/java/net/HttpURLConnection.html

于 2013-07-14T18:47:00.327 回答