如何从文本文件读取并移至下一行

时间:2019-02-14 22:07:13

标签: java java.util.scanner

我正在制作一个程序,该程序将扫描文本文件以找到所有整数,然后将它们打印出来,然后移至下一行

我曾尝试将if语句转换为while循环以尝试改进,但是我的代码遍历了文本文件,写出了所有数字,但是在运行到java.util.NoSuchElementException的末尾失败。如果我有一个带有数字的文本文件 1 2 3 五十五 然后打印出来 1个 2 3 5 但是它每次都在最后崩溃

import java.util.Scanner;
import java.io.*;
public class filterSort
{
    public static void main()
    {
       container(); 

    }
    public static void run()
    {


    }
    public static void container()
    {   Scanner console = new Scanner(System.in);
        int count = 0;
        int temp;
        try
        {
            System.out.print("Please enter a file name: ");
            String fileName = console.nextLine();
            Scanner file = new Scanner(new File(fileName));
            while(file.hasNextLine())
            {
                while(file.hasNextInt())

                {
                    temp = file.nextInt(); 
                    System.out.println(temp);                    
                }
                 file.next();                        
            }

        }
        catch(FileNotFoundException e)
        {
            System.out.println("File not found.");

        }




    }
}

2 个答案:

答案 0 :(得分:0)

替换

 file.next(); 

使用

if(file.hasNextLine())
   file.nextLine();  

每次尝试在扫描仪上前进时,都必须检查它是否具有令牌。

答案 1 :(得分:0)

下面是对我有用的程序。同样好的做法是一旦完成就关闭所有资源,并且类名应为驼峰式。都是好的习惯和标准

package com.ros.employees;

import java.util.Scanner;
import java.io.*;
public class FileTest
{
    public static void main(String[] args) {
        container(); 
    }

    public static void container()
    {   Scanner console = new Scanner(System.in);
        int count = 0;
        int temp;
        try
        {
            System.out.print("Please enter a file name: ");
            String fileName = console.nextLine();
            Scanner file = new Scanner(new File(fileName));
            while(file.hasNextLine())
            {
                while(file.hasNextInt())
                {
                    temp = file.nextInt(); 
                    System.out.println(temp);                    
                }
                if(file.hasNextLine())
                     file.next();    
            }
            file.close();
            console.close();
        }
        catch(FileNotFoundException e)
        {
            System.out.println("File not found.");
        }

    }
}