Java 从文件中读取数据而无需手动输入数组的长度

Java 从文件中读取数据而无需手动输入数组的长度,java,Java,请我想调整这个从文件中读取整数的代码。 我希望代码能够检测数据集的数量(n),而不必像下面(4000)那样手动输入数字 双人[]高=新双人[4000] public class Extracto { public static void main(String[] args) throws IOException { File fil = new File("C:\\Users\\Desktop\\kaycee2.csv"); FileReader i

请我想调整这个从文件中读取整数的代码。 我希望代码能够检测数据集的数量(n),而不必像下面(4000)那样手动输入数字

双人[]高=新双人[4000]

public class Extracto {

    public static void main(String[] args) throws IOException {

        File fil = new File("C:\\Users\\Desktop\\kaycee2.csv");
        FileReader inputFil = new FileReader(fil);
        BufferedReader in = new BufferedReader(inputFil);
        double[] tall = new double[4000];
        String s = in.readLine();
        int i = 0;
        while (s != null) {
            // Skip empty lines.
            s = s.trim();
            if (s.length() == 0) {
                continue;
            }
            tall[i] = Double.parseDouble(s); // This is line 19.
            //  System.out.println(tall[i]);
            s = in.readLine();
            i++;

        }
我希望调整后的代码能够获得数据长度,而无需手动输入,如下面4000长度的代码所示


双人[]高=新双人[4000]

正如Thomas提到的,使用列表而不是数组

public class Extracto {

    public static void main(String[] args) throws IOException {

        File fil = new File("C:\\Users\\Desktop\\kaycee2.csv");
        FileReader inputFil = new FileReader(fil);
        BufferedReader in = new BufferedReader(inputFil);
        double[] tall = new double[4000];
        String s = in.readLine();
        int i = 0;
        while (s != null) {
            // Skip empty lines.
            s = s.trim();
            if (s.length() == 0) {
                continue;
            }
            tall[i] = Double.parseDouble(s); // This is line 19.
            //  System.out.println(tall[i]);
            s = in.readLine();
            i++;

        }
    File fil = new File("C:\\Users\\Desktop\\kaycee2.csv");
    FileReader inputFil = new FileReader(fil);
    BufferedReader in = new BufferedReader(inputFil);
    ArrayList<Double> tall = new ArrayList<>();
    while(in.ready()){ 
        String s = in.readLine().trim();
        if(!s.isEmpty()){
           tall.add(Double.parseDouble(s);
        } 
    }
File fil=新文件(“C:\\Users\\Desktop\\kaycee2.csv”);
FileReader inputFil=新的FileReader(fil);
BufferedReader in=新的BufferedReader(inputFil);
ArrayList tall=新的ArrayList();
while(in.ready()){
字符串s=in.readLine().trim();
如果(!s.isEmpty()){
toll.add(Double.parseDouble(s);
} 
}
如果使用列表,则可以进一步压缩代码。
当读取的字符串不是数字时,也要添加一个try catch。

使用a而不是arrayThank your very@angle