2016-11-02 4 views
-1

J'essaie d'enregistrer la sortie readLine() dans la variable (elle ne contient qu'une seule ligne) pour comparer ces lignes dans le futur. Mais les variables ne changent pas leurs valeurs:Impossible d'enregistrer readLine(); à la variable de chaîne

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

Sortie:

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

Quand je suis en train de les convertir à cordes (aa = br.readLine() toString();.), Je avoir une exception:

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) 

Y at-il un moyen de les enregistrer en variable?

Merci.

+0

Si les données ne contient une ligne pourquoi vous appelez 'readline()' quatre fois? Mais le résultat que vous avez fourni montre clairement deux lignes: votre explication? Et qu'est-ce qui est «dedans», et sur quoi repose votre croyance que ce n'est pas nul? – EJP

+0

@OP Ne vandalisez pas votre propre question. – EJP

Répondre

0

Votre problème ici est

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

Vous lisez votre ligne, afin qu'il ne soit plus disponible pour votre

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

Et pour que vous ne lisez rien.

Essayez de réordonner votre instructionslike ce (par exemple):

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

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

Il devrait être mieux;)