Java while循环中的整数数组列表拒绝打印
我正在解决一个源于代码出现的问题,并尝试将输入文件的内容放入arraylist,下面是我的代码:Java while循环中的整数数组列表拒绝打印,java,Java,我正在解决一个源于代码出现的问题,并尝试将输入文件的内容放入arraylist,下面是我的代码: ArrayList<Integer> arrayList = new ArrayList<>(); try (Scanner s = new Scanner(new File("input.txt")).useDelimiter(",")) { while (s.hasNext()) { int b = Integer.par
ArrayList<Integer> arrayList = new ArrayList<>();
try (Scanner s = new Scanner(new File("input.txt")).useDelimiter(",")) {
while (s.hasNext()) {
int b = Integer.parseInt(s.next());
arrayList.add(b);
}
}
catch (FileNotFoundException e) {
// Handle the potential exception
}
System.out.println(arrayList);
ArrayList ArrayList=new ArrayList();
try(Scanner s=new Scanner(新文件(“input.txt”))。使用分隔符(“,”){
而(s.hasNext()){
intb=Integer.parseInt(s.next());
添加(b);
}
}
catch(filenotfounde异常){
//处理潜在的异常
}
System.out.println(arrayList);
当我运行它时,它不会打印arraylist。我不明白为什么,有人能告诉我我做错了什么吗?我使用了StringTokenizer,它工作得非常好。我不熟悉使用Scanner分割项目,所以我将其转换为StringTokenizer。希望你能接受
public static void main(String[] args) throws IOException {
ArrayList<Integer> arrayList = new ArrayList<>();
Scanner s = new Scanner(new File("input.in"));
StringTokenizer st = new StringTokenizer(s.nextLine(), ",");
while (st.hasMoreTokens()) {
int b = Integer.parseInt(st.nextToken());
arrayList.add(b);
}
s.close();
System.out.println(arrayList);
}
publicstaticvoidmain(字符串[]args)引发IOException{
ArrayList ArrayList=新的ArrayList();
扫描仪s=新扫描仪(新文件(“input.in”);
StringTokenizer st=新的StringTokenizer(s.nextLine(),“,”);
而(st.hasMoreTokens()){
intb=Integer.parseInt(st.nextToken());
添加(b);
}
s、 close();
System.out.println(arrayList);
}
这将使用所需的值填充ArrayList您可以验证是否能够读取文件。您的代码可以这样修改。请检查是否打印“文件已找到”。若不是,则表示您试图读取的文件不在类路径中。你可能想推荐
您正在尝试打印arrayList中整数的值吗?如果是这样,请参见此处:如果它打印的唯一内容是
[]
而没有其他内容,则1)文件为空,或者2)未找到文件,您忽略了异常。可能是因为catch
块中没有任何代码而抑制了异常。也许你的文件是空的,所以循环永远不会执行。当然!如果你得到一个异常,你什么也不做,除了吞下它,并且你假设你已经成功地读取了值(即使你的文件可能不是你想象的那样)。学习如何使用调试器逐步调试程序也是一个很好的主意。我曾尝试对字符串的arraylist执行相同的操作,但我没有遇到这个问题,它打印了arraylist,其中包含文件中的所有数字。但一旦我把它改回int arraylist,它就不会打印了@博士。
...
File source = new File("input.txt");
if(source.exists()) {
System.out.println("File found");
}
try (Scanner s = new Scanner(source).useDelimiter(",")) {
...