2016-11-02 19 views
-1

我試圖保存readLine()輸出到變量(它只包含一個單一的行)來比較這些行在未來。但變量不改變它們的值:無法保存readLine();到字符串變量

try { 
         String VersName = "src/bin/version.txt"; 
         BufferedReader br = null; 
         br = new BufferedReader(new FileReader(VersName)); 
         URL url = new URL("ftp://31.130.206.175/current_versions/vers"); 

         // read text returned by server 
         BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); 
         System.out.println(br.readLine()); 
         System.out.println(in.readLine()); 

         String aa = null; 
         String bb = null; 
         aa = br.readLine(); 
         bb = in.readLine(); 
         System.out.println("***" + aa + "***" + bb + "***"); 

         in.close(); 
         br.close(); 

        } catch (MalformedURLException e3) { 
         System.out.println("Malformed URL"); 
        } catch (IOException e4) { 
         System.out.println("I/O Error"); 
        } 

輸出:

0.0.0 
0.1.0 
***null***null*** 

當我嘗試將它們隱蔽到字符串(AA = br.readLine()的toString();),我有一個例外:

0.0.0 
0.1.0 
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 
    at Launcher.SimpleSwingBrowser$3.actionPerformed(SimpleSwingBrowser.java:209) 
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) 
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) 
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) 
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) 
    at java.awt.Component.processMouseEvent(Component.java:6535) 
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) 
    at java.awt.Component.processEvent(Component.java:6300) 
    at java.awt.Container.processEvent(Container.java:2236) 
    at java.awt.Component.dispatchEventImpl(Component.java:4891) 
    at java.awt.Container.dispatchEventImpl(Container.java:2294) 
    at java.awt.Component.dispatchEvent(Component.java:4713) 
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) 
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525) 
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) 
    at java.awt.Container.dispatchEventImpl(Container.java:2280) 
    at java.awt.Window.dispatchEventImpl(Window.java:2750) 
    at java.awt.Component.dispatchEvent(Component.java:4713) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) 
    at java.awt.EventQueue.access$500(EventQueue.java:97) 
    at java.awt.EventQueue$3.run(EventQueue.java:709) 
    at java.awt.EventQueue$3.run(EventQueue.java:703) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) 
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) 
    at java.awt.EventQueue$4.run(EventQueue.java:731) 
    at java.awt.EventQueue$4.run(EventQueue.java:729) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) 

有什麼辦法可以將它們保存到變量?

謝謝。

+0

如果數據僅包含一行爲什麼你叫'的readLine()'四次?但是你提供的輸出清楚地顯示了*兩行*:你的解釋?什麼是'在',你認爲它不是零的基礎是什麼? – EJP

+0

@OP不要破壞你自己的問題。 – EJP

回答

0

你的問題是在這裏

System.out.println(br.readLine()); 
System.out.println(in.readLine()); 

你的臺詞,所以就不再適用於您的

aa = br.readLine(); 
bb = in.readLine(); 

所以你讀什麼。

嘗試重新排序instructionslike此(例如):

String aa = br.readLine(); 
String bb = in.readLine(); 

System.out.println(aa); 
System.out.println(bb); 

應該會更好;)

相關問題