使用java读取/提取数据并放入变量
嘿,我有个问题。我正在尝试编写程序的一部分。我需要它做的是读取一个名为marks.txt的文档,然后提取文档中的数据并将其放入变量中,这样我就可以计算总数 文档的布局非常简单使用java读取/提取数据并放入变量,java,Java,嘿,我有个问题。我正在尝试编写程序的一部分。我需要它做的是读取一个名为marks.txt的文档,然后提取文档中的数据并将其放入变量中,这样我就可以计算总数 文档的布局非常简单 Assessment1 41 Assessment2 41 Assessment3 41 运行代码时,已声明的变量保持为NULL 这是程序中该部分的代码 public void readMarks() { try { doc = new File ("marks.txt");
Assessment1 41
Assessment2 41
Assessment3 41
运行代码时,已声明的变量保持为NULL
这是程序中该部分的代码
public void readMarks()
{
try {
doc = new File ("marks.txt");
if(!doc.exists())
{
System.out.println ("Marks.txt Does Not Exist");
}
Scanner input = new Scanner(doc);
while (input.hasNext()) {
String Assessment1 = input.next();
int mark1 = input.nextInt();
String Assessment2 = input.next();
int mark2 = input.nextInt();
String Assessment3 = input.next();
int mark3 = input.nextInt();
}
input.close();
}
catch (FileNotFoundException ex) {
System.err.println("File has not been found");
}
}
您需要执行以下操作:
您可能可以使用
映射
来存储分配及其标记,在遍历扫描仪
返回的值时,在映射
中添加标记。然后,您将遍历映射
,计算总和并将其写入文件。在循环中声明变量从来都不是一个好主意。我已经尝试过这个解决方案,它工作得非常完美,如果您有任何问题,可能与marks.txt位于不正确的位置有关
public static void readMarks()
{
String Assessment1 = null, Assessment2 = null, Assessment3 = null;
int mark1 = 0,mark2 = 0,mark3 = 0;
try {
File doc = new File ("marks.txt");
if(!doc.exists())
{
System.out.println ("Marks.txt Does Not Exist");
}
Scanner input = new Scanner(doc);
while (input.hasNext()){
Assessment1 = input.next();
mark1 = input.nextInt();
Assessment2 = input.next();
mark2 = input.nextInt();
Assessment3 = input.next();
mark3 = input.nextInt();
}
input.close();
System.out.println(Assessment1 + " "+mark1 + Assessment2 +mark2+ " " + Assessment3 +mark3+ " ");
}
catch (FileNotFoundException ex) {
System.err.println("File has not been found");
}
}
如果您有任何疑问,请毫不犹豫地询问,问题是什么?你不能做
int sum=mart1+mark2+mark3代码>?问题是什么?问题是我无法提取它们的值变量只是保持空值,即文本文档中的值没有放入mark 1、mark2或mark3变量中。您在评估1/2/3中得到了什么?您是否只有“Assessment1/2/3”或数字(即Assessment1 41)?文本文档的格式类似于上文格式的Assessment1 25 Assessment2 63 Assessment3 16忘了说,如果您要汇总分数,请声明一个变量int sum=0;循环外,包括sum+=mark1+mark2+mark3;循环是错误的,因为input.hasNext()不能确保您有3行要读,如果您只有评估1呢?那位先生已经完成了:D非常感谢!!同时也感谢所有帮助过你的人:D!