从网上读取文件

时间:2013-07-14 18:45:04

标签: java

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

3 个答案:

答案 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请求以读取其中的信息。

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