Java 从文件/数组中读取。没有价值观。没有错误
你知道我错过了什么吗?我正在读取一个文件数组。文本文件中的值不会被存储,也没有输出。我得到的只是“姓名和总数”,但没有值 我不知道Java 从文件/数组中读取。没有价值观。没有错误,java,Java,你知道我错过了什么吗?我正在读取一个文件数组。文本文件中的值不会被存储,也没有输出。我得到的只是“姓名和总数”,但没有值 我不知道 private int[] totals; private String[] names; private String[] list; private int count; public void readData() throws IOException { BufferedReader input = new BufferedReader(ne
private int[] totals;
private String[] names;
private String[] list;
private int count;
public void readData() throws IOException {
BufferedReader input = new BufferedReader(new FileReader("cookies.txt"));
//create the arrays
totals = new int[count];
names = new String[count];
list = new String[count];
//read in each pair of values
String quantityString = input.readLine();
for (int i = 0; i < count; i++) {
names[i] = input.readLine();
list[i] = input.readLine();
quantityString = input.readLine();
totals[i] = Integer.parseInt(quantityString);
}
}
public void display() {
System.out.println("names totals")
for (int i = 0; i < count; i++)
System.out.println(list[i] + " \t " + names[i] + " \t" + totals[i]);
}
//called to compute and print the result
public void printResults() {
//find the best teacher
int maxIndex = 0;
int maxValue = 0;
//for each record stores
for (int i = 0; i < count; i++) {
//if we have a new MAX value so far, update variables
if (maxValue < totals[i]) {
maxValue = totals[i];
maxIndex = i;
}
}
}
private int[]总计;
私有字符串[]名称;
私有字符串[]列表;
私人整数计数;
public void readData()引发IOException{
BufferedReader输入=新的BufferedReader(新文件阅读器(“cookies.txt”);
//创建数组
总计=新整数[计数];
名称=新字符串[计数];
列表=新字符串[计数];
//读入每对值
String quantityString=input.readLine();
for(int i=0;i
您从未给变量count
一个值,因此Java将其初始化为0
。这意味着您的数组的大小也为0
因此,由于count
为零,您从未从文件中读取任何内容,这就是为什么数组中没有存储任何内容,也没有打印任何内容的原因
示例:逐行读取文件
// create temporary variable to hold what is being read from the file
String line = "";
// when you don't know how many things you have to read in use a List
// which will dynamically grow in size for you
List<String> names = new ArrayList<String>();
List<Integer> values = new ArrayList<Integer>();
// create a Reader, to read from a file
BufferedReader input = new BufferedReader(new FileReader("cookies.txt"));
// read a full line, this means if you line is 'Smith 36'
// you read both of these values together
while((line = input.readLine()) != null)
{
// break 'Smith 36' into an array ['Smith', '36']
String[] nameAndValue = line.split("\\s+");
names.add(nameAndValue[0]); // names.add('Smith')
values.add(Integer.parseInt(nameAndValue[1]); // values.add(36);
}
//创建临时变量以保存从文件中读取的内容
字符串行=”;
//当你不知道有多少东西你必须阅读在使用一个列表
//它将为您动态地增加大小
列表名称=新的ArrayList();
列表值=新的ArrayList();
//创建读取器,以从文件中读取
BufferedReader输入=新的BufferedReader(新文件阅读器(“cookies.txt”);
//读一整行,这意味着如果你的行是“史密斯36”
//您可以同时读取这两个值
而((line=input.readLine())!=null)
{
//将“Smith 36”拆分为一个数组['Smith',36']
字符串[]name和value=line.split(\\s+);
names.add(nameAndValue[0]);//names.add('Smith'))
values.add(Integer.parseInt(name和value[1]);//values.add(36);
}
以更好的格式显示完整的代码。分配给“count”的是什么?在进行格式设置时,我猜测了一下。我结束了if块、for循环和方法。这可能很早。最好将您的全部源代码放在这里,以便我们可以看到具体的错误。您知道需要多少东西吗读进去吗?如果是这样的话,把计数设为那个数字。我很抱歉问了这么一个问题,但我已经发疯了好几个小时了。我对java或编码一无所知。26史密斯3考特尼5图伊8马勒巴7温恩5阿门多拉8伯恩斯9科尼尔斯5戴维斯4迪帕利10迪洛纳多12多诺弗里奥15哈里斯5海耶8亨塞尔德9克萨达8斯格尔扎6尤塞夫19赞布阿诺18 Kumuyi 7 Aliberti 6 Alvarez 10 Chiara 12 Maloney 5 Stix 5 Merritt22@JaneSmith每个数字-名称对后面都有换行符?我在哪里设置这个数字?