file.hasNext()不要停止循环

时间:2018-06-10 03:01:03

标签: java java.util.scanner

我试图按照该代码读取txt文件:

static public void main(String[] args) throws  FileNotFoundException{
        File file = new File("C:\\Users\\Leo\\Downloads\\Ler Arquivo\\Iris.txt");
        Scanner texto = new Scanner(file) .useDelimiter(",|\n");
        Float[] sepal_length = new Float[1000];
        int i=4;
        int j=0;
        while(texto.hasNext()){
            if(i%4==0){
           System.out.println(texto.next());
            j++;
            }
            i++;
            texto.next();
}  
    }

我的txt文件是这样的:

sepal_length,sepal_width,petal_length,petal_width,species
5.1,3.5,1.4,0.2,setosa
4.9,3.0,1.4,0.2,setosa
4.7,3.2,1.3,0.2,setosa
4.6,3.1,1.5,0.2,setosa
5.0,3.6,1.4,0.2,setosa
5.4,3.9,1.7,0.4,setosa
4.6,3.4,1.4,0.3,setosa
5.0,3.4,1.5,0.2,setosa
4.4,2.9,1.4,0.2,setosa
4.9,3.1,1.5,0.1,setosa
5.4,3.7,1.5,0.2,setosa
4.8,3.4,1.6,0.2,setosa

我'已创建数组以从文件中仅接收sepal_length。所以,我'我创建了一个变量i来计算每一行的每个第四个位置。当我使用变量i来计算数据位置时,我发现错误:

Exception in thread "main" java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Scanner.java:862)
    at java.util.Scanner.next(Scanner.java:1371)
    at ler.arquivo.Arquivo.main(Arquivo.java:22)
C:\Users\Leo\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 0 seconds)

当我不喜欢'使用变量i,只是为了在我的文件控制台上打印,我的代码完美无缺。 你们可以帮助我吗?如何将每个数据分离到我的阵列?我是Java的初学者。

1 个答案:

答案 0 :(得分:0)

if语句为true时,您在texto.next()循环中有两行While行代码,其中第一行代码按While条件检查,但第二行由任何编码控制检查。