Java 在while循环中使用.readLine()方法跳过对行

Java 在while循环中使用.readLine()方法跳过对行,java,Java,我是Java新手,有点小麻烦: 我试着读取化学样品,用X-Y图表示它们 输入文件如下所示: 洛杉矶0.85678 Ce 0.473 Pr 62.839 ... 我的代码只存储了示例中的unpair line值0.85678,跳过line,62.839,我无法意识到问题是什么: public class Procces { public void readREE() throws IOException { try{ rEE = new B

我是Java新手,有点小麻烦:

我试着读取化学样品,用X-Y图表示它们

输入文件如下所示:

洛杉矶0.85678

Ce 0.473

Pr 62.839 ...

我的代码只存储了示例中的unpair line值0.85678,跳过line,62.839,我无法意识到问题是什么:

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

提前谢谢你,因为我不明白为什么程序会跳过两行。

请看一看


一般来说,Java是一种成熟的语言,在大多数情况下,您不必重新实现通用语言,例如以低级方式读取自定义文本文件

使用Java Scanner类

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());
            }
        }
    }
}
我明白了。多谢各位

代码如下:

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;

}

请从IDE正确发布代码。月食不能理解你的东西。到处都是花括号。完成。该方法位于一个将绘制点的类中,因此它有额外的变量。这简化了很多,我可以看到使用Scanner的实用性,所以我想我会使用它,以及用于Excel文件的J Excel open API。我对编辑器有点疯狂,我想我删除了:我强烈建议使用apache poi。poi.apache.org您将在stackoverflow上找到大量关于此的线程;-高频。我将看看ApacheAPI和论坛,阅读最常用的excel文件。现在我将继续绘图,只需使用scanner添加.txt值。您不需要空的finally块;-至少对于您使用的新Java7资源处理,我将在稍后查看异常处理。固定的