Java在文本文件中读取不同的数组
发布时间:2020-12-15 04:16:59 所属栏目:Java 来源:网络整理
导读:我必须用 Java读取文本文件,将其内容分成单独的数组,然后计算某些数组的平均值.我的问题是,当我尝试显示某个数组以确保它工作时,我得到“null”而不是整个列表.任何人都可以帮我找到我错的地方吗? import java.io.*;class ReadFile { public static void ma
我必须用
Java读取文本文件,将其内容分成单独的数组,然后计算某些数组的平均值.我的问题是,当我尝试显示某个数组以确保它工作时,我得到“null”而不是整个列表.任何人都可以帮我找到我错的地方吗?
import java.io.*; class ReadFile { public static void main(String args[]) String[] id = new String[1234]; // random number just for initialization String[] name = new String[1234]; String[] asg1 = new String[1234]; String[] asg2 = new String[1234]; try { String sCurrentLine; FileReader fr = new FileReader("Information.txt"); BufferedReader textReader = new BufferedReader(fr); int i; String[] array = null; // Read file in separate parts and remove commas while ((sCurrentLine = textReader.readLine()) != null) { array = sCurrentLine.split(","); System.out.print(array[0]); System.out.print(array[1]); System.out.print(array[2]); System.out.println(array[3]); } // enter variables from each line in separate arrays for (i = 0; i < array.length; i++) { id[i] = array[0]; name[i] = array[1]; asg1[i] = array[2]; asg2[i] = array[3]; } System.out.println(name[i]); // "null" appears instead of all the names textReader.close(); } catch (Exception e) { // Catch exception if any System.err.println("Error: " + e.getMessage()); } } } 输入看起来像这样: ID,name,Asg1,Asg2 123456,Max,98.00,80.00 012345,James,40.00,69.00 234567,Mary,78.00,88.00 解决方法
问题是您在读完所有输入后分配值,而不是一次分配一行.
代替 //Read file in separate parts and remove commas while ((sCurrentLine = textReader.readLine()) != null) { array = sCurrentLine.split(","); System.out.print(array[0]); System.out.print(array[1]); System.out.print(array[2]); System.out.println(array[3]); } //enter variables from each line in separate arrays for (i = 0; i < array.length; i++) { id[i] = array[0]; name[i] = array[1]; asg1[i] = array[2]; asg2[i] = array[3]; } 你可能想要这样的东西 int i = 0; while ((sCurrentLine = textReader.readLine()) != null) { array = sCurrentLine.split(","); id[i] = array[0]; name[i] = array[1]; asg1[i] = array[2]; asg2[i] = array[3]; i++; } 当你在当前代码中到达System.out.println时,它也会等于你填充的最后一个索引之后的那个,但这是一个较小的问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |