2016-04-19 16 views
-1

Ich bin neu in Java und ich habe eine wenig Mühe:Jumping Paar Linien mit .readLine() -Methode bei einer while-Schleife

I chemische Proben zu lesen versuchen sie zu einem X-Y-Diagramm darstellen.

Die Eingabedatei sieht wie folgt aus:

La 0,85678

Ce 0,473

Pr 62,839 ... ...

Mein Code Bestände nur die unpair Linien Wert (0.85678, springt Linie, 62.839 am Beispiel), und ich kann nicht erkennen, was das Problem ist:

public class Procces { 

    public void readREE() throws IOException { 

      try{ 

      rEE = new BufferedReader (new FileReader ("src/files/test.txt")); 

      while ((currentLine = rEE.readLine()) != null) { 

       try { 

        for (int size = 3;size<10;size++) { 

         String valueDec=(currentLine.substring(3,size)); 
         //char letra =(char)c; 
         if ((c=rEE.read()) != -1) { 
          System.out.println("Max size"); 
         } else 

         valueD = Double.parseDouble(valueDec); 
         System.out.println(valueDec); 
         } 
        } 
      catch (Exception excUncertainDecimals) { 
        } 
       }    
      }finally { 
       try { rEE.close(); 
          } catch (Exception exc) { 
           } 
      } 
    } 
     String line; 
     int c = 0; 
     int counter = 0; 
     String valueS = null; 
     String valueSimb = null; 
     Double valueD = null; 
     Double logValue = null; 
     Double YFin=450.0; 
     String currentLine; 
     BufferedReader rEE; 

}

Vielen Dank im Voraus, wie ich nicht sehen kann, warum das Programm die Paarlinien springt.

+0

Bitte senden Sie den Code richtig von Ihrem IDE. Eclipse kann deinem Ding keinen Sinn geben. Curly Hosenträger fehlen überall. – Tunaki

+0

Fertig. Die Methode befindet sich in einer Klasse, die die Punkte grafisch darstellen soll, also zusätzliche Variablen enthält. –

Antwort

1

Verwenden Sie Java-Scanner-Klasse.

import java.io.*; 
import java.util.Scanner; 

public class MyClass { 
    public static void main(String[] args) throws IOException { 

     try (Scanner s = new Scanner(new BufferedReader(new FileReader("file.txt"))){ 

      while (s.hasNext()) { 
       System.out.println(s.next()); 
      } 
     } 
    } 
} 
+0

Das vereinfacht eine Menge, und ich kann das Dienstprogramm der Verwendung von Scanner sehen, so denke ich, ich werde es verwenden, sowie J Excel öffnen API für Excel-Dateien. –

1

Bitte sehen Sie sich Scanner an.

Im Allgemeinen ist Java eine gut etablierte Sprache und in den meisten Fällen müssen Sie "normale" (z. B. das Lesen benutzerdefinierter Textdateien) Inhalte nicht auf niedriger Ebene neu implementieren.

+0

Ich wurde ein bisschen verrückt mit dem Editor und ich denke, ich habe gelöscht: "Ich würde sehr empfehlen Apache Poi dafür zu verwenden. Poi.apache.org Sie finden hier eine Menge Thread auf stackoverflow ;-) hf". Ich werde einen Blick auf Apache API und auf die Foren werfen, um auch Excel-Dateien zu lesen, die am häufigsten verwendet werden. Jetzt werde ich mit dem Plotten fortfahren und nur die .txt Werte mit dem Scanner hinzufügen. –

0

Ich verstehe es. Vielen Dank.

Hier den Code:

import java.io.* 
import java.util.Scanner; 

public class Process implements Samples{ 

    public void readREE() throws IOException { 

      try 
       (Scanner rEE = new Scanner(new BufferedReader(new FileReader("src/files/test.txt")))){ 
        while (rEE.hasNext()) { 

         element = rEE.next(); 

         if (element.equals("La")) { 
          String elementValue = rEE.next(); 
          Double value = Double.parseDouble(elementValue); 
          Double valueChond = 0.237; 
          Double valueNorm= value/valueChond; 
          Double logValue = (Math.log(valueNorm)/Math.log(10)); 
          Double yLog = yOrd - logValue*133.33333333; 
          Sample NormedSampleLa=new Sample("La",yLog); 
          sampleREE.add(NormedSampleLa); 
         } 
        } 

     } finally { 
     } 
} 

    public String LaS, CeS, PrS, NdS, PmS, SmS, EuS, GdS, TbS, DyS, HoS, ErS, TmS, YbS, LuS; 
    public String element, elementValue; 
    public Double yOrd=450.0; 

}

+1

Du brauchst das leere endlich nicht zu blockieren ;-) (zumindest nicht für das "neue" Java 7 Ressourcenhandling benutzt du) – Rainer

+0

Ich werde mich später noch um die Ausnahmen Behandlung kümmern. Fest. –