从一个文件读取数字并创建一个数组(java)

时间:2022-09-25 10:23:59

I cannot figure out how to make this txt file with numbers into an array, I am able to get it to read and print the screen but I need to be able to organize the numbers and delete the duplicates. This is what my code looks like so far

我不知道如何将这个txt文件和数字一起放入一个数组中,我可以让它读取和打印屏幕,但是我需要能够组织数字并删除重复。这就是我的代码目前的样子。

import java.io.BufferedReader; 
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class File {
 public static void main(String[] args) {
 String filename = "C:/input.txt";

 File rfe = new File();
 rfe.readFile(filename);
 }

 private void readFile(String name) {
 String input;

  try (BufferedReader reader = new BufferedReader(new FileReader(name))) {

    while((input = reader.readLine()) != null) {
        System.out.format(input); // Display the line on the monitor
    }
}
 catch(FileNotFoundException fnfe) {

 }
 catch(IOException ioe) {

 }
 catch(Exception ex) { // Not required, but a good practice

 }


}
}

1 个解决方案

#1


0  

I would recommend using an ArrayList rather than an Array.

我建议使用ArrayList而不是数组。

With an array you would have to parse through the list and calculate the line count before you could even initialize it. An ArrayList is much more flexible as you don't have to declare how many values will be added to it.

对于一个数组,您需要解析列表并在初始化它之前计算行数。ArrayList的灵活性要大得多,因为您不必声明要添加多少个值。

import java.io.BufferedReader; 
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class File {

private List<Integer> data = new ArrayList<Integer>(); //Create ArrayList

public static void main(String[] args) {
    String filename = "C:/input.txt";

    File rfe = new File();
    rfe.readFile(filename);
}

private void readFile(String name) {
    String input;

    try (BufferedReader reader = new BufferedReader(new FileReader(name))) {

        while((input = reader.readLine()) != null) {
            data.add(Integer.parseInt(input));//Add each parsed number to the arraylist
            System.out.println(input); // Display the line on the monitor
        }
    }
    catch(FileNotFoundException fnfe) {

    }
    catch(IOException ioe) {

    }
    catch(Exception ex) { // Not required, but a good practice
        ex.printstacktrace(); //Usually good for general handling
    }

}
}

#1


0  

I would recommend using an ArrayList rather than an Array.

我建议使用ArrayList而不是数组。

With an array you would have to parse through the list and calculate the line count before you could even initialize it. An ArrayList is much more flexible as you don't have to declare how many values will be added to it.

对于一个数组,您需要解析列表并在初始化它之前计算行数。ArrayList的灵活性要大得多,因为您不必声明要添加多少个值。

import java.io.BufferedReader; 
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class File {

private List<Integer> data = new ArrayList<Integer>(); //Create ArrayList

public static void main(String[] args) {
    String filename = "C:/input.txt";

    File rfe = new File();
    rfe.readFile(filename);
}

private void readFile(String name) {
    String input;

    try (BufferedReader reader = new BufferedReader(new FileReader(name))) {

        while((input = reader.readLine()) != null) {
            data.add(Integer.parseInt(input));//Add each parsed number to the arraylist
            System.out.println(input); // Display the line on the monitor
        }
    }
    catch(FileNotFoundException fnfe) {

    }
    catch(IOException ioe) {

    }
    catch(Exception ex) { // Not required, but a good practice
        ex.printstacktrace(); //Usually good for general handling
    }

}
}