public class CreditCardHolder
{
/**
 * This method is used to hold credit card numbers
 */
    public static void main(String[] args) throws Exception
    {
        File cardNumbers = new File("creditcardnumbers.txt");
        Scanner cardNumbersInput = new Scanner(cardNumbers);

        cardNumbersInput.useDelimiter("|" + System.getProperty("line.separator"));

        while(cardNumbersInput.hasNextInt())
        {
            int cardNumber = Integer.parseInt(cardNumbersInput.next());
            System.out.printf("%d", cardNumber);
        }

        cardNumbersInput.close();
    }


为什么这只是在我的.txt文件中打印第一行,所以我需要它来打印文件中的任何内容,我目前有四个数字,因此
4929253776358751
4716026803447186
4539032933695186
5473350227612088

最佳答案

改成:

public static void main(String[] args) throws FileNotFoundException{
    File cardNumbers = new File("creditcardnumbers.txt");
    Scanner cardNumbersInput = new Scanner(cardNumbers);

    while(cardNumbersInput.hasNextLine()) {
        String cardNumber = cardNumbersInput.nextLine();
        System.out.println(cardNumber);
    }

    cardNumbersInput.close();
}


测试hasNextLine()代替hasNextInt(),并使用nextLine()代替nextInt(),因为您无需解析/格式化任何内容。为简单起见,您应该使用println而不是printf,因为您没有格式设置。当然,请避免使用自定义定界符(假设默认定界符)。

07-27 23:15