Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从文本文件中创建一个填充行数的数组?_Java_Arrays - Fatal编程技术网

Java 如何从文本文件中创建一个填充行数的数组?

Java 如何从文本文件中创建一个填充行数的数组?,java,arrays,Java,Arrays,我需要做的是创建一个数组,该数组需要用文本文件中的行数填充,所以假设文本文件有5行,那么该数组将是:array[5] 我有以下代码: try{ LineNumberReader lnr = new LineNumberReader(new FileReader(new File("lista de numeros.txt"))); int linenumber = 0; int primero = 0; String tmp = new String();

我需要做的是创建一个数组,该数组需要用文本文件中的行数填充,所以假设文本文件有5行,那么该数组将是:array[5] 我有以下代码:

try{ LineNumberReader  lnr = new LineNumberReader(new FileReader(new File("lista de numeros.txt"))); int linenumber = 0; int primero = 0;
            String tmp = new String();
            tmp=lnr.readLine();
                while(tmp != null)
                {
                    linenumber++;  
                    JOptionPane.showMessageDialog (null, (tmp));
                    tmp=lnr.readLine();

                } int mitad=(0+linenumber)/2; int [] array = new int[linenumber];   
我想做的是按照代码最后一行的方式创建数组,我尝试这样做,但是如果我尝试打印如下内容:

JOptionPane.showMessageDialog (null, "Number at half: " + array[mitad]);
仅显示0:
有人能告诉我如何以正确的方式填充数组吗请

您从不在代码中填充int数组,int数组元素的默认值为0。 您可以尝试使用ArrayList动态添加数字,然后使用它填充数组:

try {
            LineNumberReader lnr = new LineNumberReader(new FileReader(new File("lista de numeros.txt")));
            int linenumber = 0;
            int primero = 0;
            ArrayList<Integer> tmpArrayList = new ArrayList();
            String tmp = new String();
            tmp = lnr.readLine();
            while (tmp != null) {
                tmpArrayList.add(Integer.parseInt(tmp));
                linenumber++;
                JOptionPane.showMessageDialog(null, (tmp));
                tmp = lnr.readLine();

            }
            int mitad = (0 + linenumber) / 2;
            int[] array = new int[linenumber];
            for (int i = 0; i < array.length; i++) {
                array[i] = tmpArrayList.get(i).intValue();
            }
试试看{
LineNumberReader lnr=新的LineNumberReader(新文件阅读器(新文件(“lista de numeros.txt”));
int linenumber=0;
int primero=0;
ArrayList tmpArrayList=新建ArrayList();
字符串tmp=新字符串();
tmp=lnr.readLine();
while(tmp!=null){
添加(Integer.parseInt(tmp));
linenumber++;
showMessageDialog(null,(tmp));
tmp=lnr.readLine();
}
int-mitad=(0+行号)/2;
int[]数组=新int[linenumber];
for(int i=0;i
使用ArrayList,您甚至不需要计算行号。只要在while循环之后随时使用
tmpArrayList.size()
。但是请注意,,您的文件中应该只有整数,没有字符串!否则它将无法工作。

或者,您也可以从第二个循环开始再次读取所有行以填充数组。但这不是最好的方法,因为在本例中,您需要读取文件两次:一次用于计算用于实例化数组的行数,一次用于填充数组。

您需要将元素(在本例中为
tmp
)添加到
int[]数组
array[mitad]
0
,因为这是
int
类型变量的默认值。