逐行读取文本文件并将这些行放入Java中的列表中
Posted
技术标签:
【中文标题】逐行读取文本文件并将这些行放入Java中的列表中【英文标题】:reading a text file line by line and putting the lines into lists in Java 【发布时间】:2014-11-24 02:32:18 【问题描述】:如果我有以下文本文件:
5 -5 -4 -3 -2 -1
6 -33 -22 -11 44 55 66
(行中的第一个#是列表的长度)
如何逐行读取文件,然后读取每行中的整数以创建 2 个列表?
程序的期望输出:
list1 = [-5,-4,-3,-2,-1]
list2 = [-33,-22,-11,44,55,66]
以下是我能够完成一行但我不知道如何修改它以继续阅读这些行。
import java.util.*;
import java.io.*;
import java.io.IOException;
public class Lists
public static void main(String[] args) throws IOException // this tells the compiler that your are going o use files
if( 0 < args.length)// checks to see if there is an command line arguement
File input = new File(args[0]); //read the input file
Scanner scan= new Scanner(input);//start Scanner
int num = scan.nextInt();// reads the first line of the file
int[] list1= new int[num];//this takes that first line in the file and makes it the length of the array
for(int i = 0; i < list1.length; i++) // this loop populates the array scores
list1[i] = scan.nextInt();//takes the next lines of the file and puts them into the array
`
【问题讨论】:
添加你试过的代码就好了。 在 Stack Overflow 上提问时,您需要提供研究证据以及您已经为解决问题所做的尝试。 Stack Overflow 不接受包含“我不知道该怎么做,有人可以帮助我”的问题。您需要提供问题的Minimum, complete, verifiable example。 我的修改可以接受吗? 【参考方案1】:我已将list1
设为一个二维数组,它将每一行作为其行。我正在存储号码。 list1
的每一行的元素到另一个数组listSizes[]
而不是您的代码中使用的num
。阅读完所有行后,如果您需要 2 个数组,您可以轻松地从 list1
移动它。
代码
int listSizes[] = new int[2];
int[][] list1= new int[2][10];
for(int j = 0; scan.hasNextLine(); j++)
listSizes[j] = scan.nextInt();
for(int i = 0; i < listSizes[j]; i++)
list1[j][i] = scan.nextInt();
for(int j = 0; j < 2; j++)
for(int i = 0; i < listSizes[j]; i++)
System.out.print(list1[j][i] + " ");
System.out.println();
输出
-5 -4 -3 -2 -1
-33 -22 -11 44 55 66
【讨论】:
我需要它们成为 2 个独立的数组,这样我就可以合并它们并稍后在程序中做其他事情 @us42 如果需要,您可以在读取后将二维数组的每一行复制到单独的数组中。以上是关于逐行读取文本文件并将这些行放入Java中的列表中的主要内容,如果未能解决你的问题,请参考以下文章
从文本文件中逐行提取数据并将其存储在python的列表中[重复]