java - 如何从文本文件中读取并移至下一行
问题描述
我正在制作一个程序,它将扫描文本文件以查找所有整数,然后将它们打印出来,然后移至下一行
我尝试将 if 语句转换为 while 循环以尝试改进,但我的代码运行文本文件,写出所有数字,但在运行到 java.util.NoSuchElementException 的最后失败。如果我有一个带有数字 1 2 3 55 5 的文本文件,那么它会打印出 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.");
}
}
}
解决方案
下面是为我工作的程序。完成后关闭所有资源也是一种好习惯,并且类名应该是驼峰式。这都是好的做法和标准
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.");
}
}
}
推荐阅读
- node.js - 在亚马逊 Linux 上运行 pm2 时出现“语法错误意外令牌...”
- jupyter-notebook - jupyter notebook 无法从远程访问中保存
- amazon-redshift - 具有默认字符串的 AWS redshift 更改表
- node.js - 重复位置“/”Nginx错误后端和前端
- viber - 在 Viber 机器人响应中显示地图
- rsocket - RSocket- 在请求-响应语义上公开服务方法
- c# - Xamarin.android如何添加snackbar回调
- javascript - 如何使用 D3 将 SVG 圆圈堆叠在另一个圆圈之上?
- python - BeautifulSoup,试图从包含作者姓名的锚标签中提取文本
- python - Python Spyder:在“.describe()”中显示熊猫数据框的所有列