2013-08-06 165 views
0

如何從文本中讀取行?看看我的代碼:如何從txt讀取行?

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。

+1

這可能會引發異常。不要像那樣默默地消費例外。 – arshajii

+1

可能引發異常。在'catch'塊中加入一些東西,比如'e.printStackException()'看看是否是這種情況。 –

+0

嗯。真。如果我嘗試這個'catch(Exception e){ } \t \t \t \t \t \t name =「TEST」; \t \t}'它會返回「測試」。 –

回答

6

FileReader正是–從文件讀取的類,而不是HTTP請求。

你得到一個無效的文件路徑例外,你是那麼你的邪惡空的catch塊忽略。

相反,你應該使用URLConnection

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

據我所知,URL#openStream()內部調用URL#openConnection()這就造成URLConnection一個實例,並調用它URLConnection#getInputStream()

+0

閱讀器無法解析 –

+0

你是什麼意思? –

+0

哦。我沒有注意到。我會盡力。 –