简体   繁体   中英

Read file contents into an ArrayList

On a previous project I was required to read file contents into an array. Now I have to do the same thing only I have to read the contents into an ArrayList. A few problems I am encountering is

  1. How do I step through the ArrayList adding each item separately?

  2. If the file contains more than 10 inputs, it has to exit. I have tried the following, which does not work properly.

Code:

   public static String readFile(String fileName) throws IOException {
    String result = "";
    String line = "";

    FileInputStream inputStream = new FileInputStream(fileName);
    Scanner scanner = new Scanner(inputStream);
    DataInputStream in = new DataInputStream(inputStream);
    BufferedReader bf = new BufferedReader(new InputStreamReader(in));

    int lineCount = 0;
    String[] numbers;
    while ((line = bf.readLine()) != null) {
        numbers = line.split(" ");

        for (int i = 0; i < 10; i++) {
            if(i > 10) {
                System.out.println("The file you are accessing contains more than 10      input values.  Please edit the file you wish to use so that it contains"
                        + "> 10 input values.  The program will now exit.");
                System.exit(0);
            }

            matrix[i] = Integer.parseInt(numbers[i]);
        }
        lineCount++;

        result += matrix;
    }

Instead of assigning the line to array[i] , simply do arrayList.add(line)

If this is not homework, consider using some 3rd party utilities like apache-commons FileUtils.readLines(..) or guava Files.readLines(..)

The if condition will always be false :

for (int i = 0; i < 10; i++) {
    if(i > 10) {
        System.out.println("The file you are accessing contains more than 10      input values.  Please edit the file you wish to use so that it contains"
                        + "> 10 input values.  The program will now exit.");
                System.exit(0);
    }

To append to an ArrayList use its add() method. ArrayList has a method size() which you could use to determine if the file contained more than ten inputs.

EDIT:

The terminating condition of your for loop should be based on numbers.length , and not ten.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM