0

如何从文本中读取行?看我的代码:

public static String getTemplateFromFile() {
        String name = null;
        try {
            BufferedReader reader = new BufferedReader(new 
                        FileReader(
                      "http://localhost:8080/blog/resources/cache/templateName.txt"));
            name = reader.readLine();
            //name="TEST";
            //NULL anyway
            reader.close();

        }

        catch (Exception e) {

        }


        return name;
    }

我也有 secnod 版本,但我的服务器冻结了。

public static String getTemplateFromFile() {
        String name = null;
        /*
        try {
               URL url = new URL("http://localhost:8080/blog/resources/cache/templateName.txt");
               Scanner s = new Scanner(url.openStream());   

               name=s.nextLine();
               s.close();
            }
            catch(IOException ex) {

               ex.printStackTrace();
            }*/
        return name;
    }

我认为它无法关闭连接或其他东西。即使我name="TEST";在尝试构造中说它也会返回 NULL 。

4

2 回答 2

6

FileReader正是这样——一个从文件中读取的类,而不是 HTTP 请求。

你得到一个无效的文件路径异常,然后你会在你的邪恶空 catch 块中忽略它。

相反,您应该使用URLConnection.

于 2013-08-06T13:32:14.703 回答
0

尝试这个

try{
     URL reader=new URL("http://localhost:8080/blog/resources/cache/templateName.txt");
     BufferedReader br=new BufferedReader(new InputStreamReader(reader.openStream()));
     name = br.readLine();
     //name="TEST";     
     br.close();
}catch (MalformedURLException ex) {
         ex.printStackTrace();
} catch (IOException ex) {
         ex.printStackTrace();
}

AFAIK,URL#openStream()内部调用URL#openConnection()它创建一个实例URLConnection并调用URLConnection#getInputStream()它。

于 2013-08-06T13:37:11.743 回答