如何从文本中读取行?

时间:2013-08-06 13:30:54

标签: java file io

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

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;
    }

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

2 个答案:

答案 0 :(得分:6)

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

您收到的文件路径异常无效,然后您将在您的邪恶空捕获块中忽略它。

相反,您应该使用URLConnection

答案 1 :(得分: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()