如何解决读取给定文件后创建和写入文本文件
给定的任务是创建一个程序:
- 从用户处读取 tsv 文件的文件名。
- 打开 tsv 文件并阅读学生信息。
- 计算每个学生的平均考试成绩。
- 根据平均考试成绩为每个学生分配一个字母等级。
- 计算每次考试的平均值。
- 将学生的姓氏、名字、考试成绩和字母等级输出到名为 report.txt 的文本文件中。
- 每行输出一名学生并用制表符分隔值。
- 在report.txt末尾输出每次考试的平均值,小数点后两位。
我已完成此列表中的所有内容,并且已多次测试我的代码。当我在将它写入文件之前打印它时,一切正常。但问题是,当使用 Fileoutputstream 和 Printwriter 时,我没有得到“report.txt”,并且程序一直说它没有产生任何输出。我也试过 File 和 Write 方法,但它仍然不起作用。在运行代码之前,我尝试创建和不创建实际的 report.txt 文件,但它仍然没有创建该死的文件。这让我疯狂。请帮忙!!!
这是我的代码:
import java.util.Scanner;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.io.IOException;
public class LabProgram {
public static void main(String[] args) throws IOException {
Scanner scnr = new Scanner(system.in);
Scanner reader = null;
FileInputStream fileByteStream = null;
String fileName = scnr.next();
fileByteStream = new FileInputStream(fileName);
reader = new Scanner(fileByteStream);
String lastName,firstName;
int score1,score2,score3,individualAvg;
int studentNum = 0;
char grade;
double midterm1,midterm2,midterm3;
midterm1 = 0.0;
midterm2 = 0.0;
midterm3 = 0.0;
FileOutputStream fileStream = null;
PrintWriter outFS = null;
fileStream = new FileOutputStream("report.txt");
outFS = new PrintWriter(fileStream);
while (reader.hasNext()){
lastName = reader.next();
firstName = reader.next();
score1 = reader.nextInt();
score2 = reader.nextInt();
score3 = reader.nextInt();
individualAvg = (score1 + score2 + score3)/3;
if (individualAvg>=90){
grade = 'A';
}
else if (individualAvg>=80){
grade = 'B';
}
else if (individualAvg>=70){
grade = 'C';
}
else if (individualAvg>=60){
grade = 'D';
}
else{
grade = 'F';
}
midterm1 += score1;
midterm2 += score2;
midterm3 += score3;
studentNum += 1;
outFS.println(lastName + "\t" + firstName + "\t" + score1 + "\t" + score2 + "\t" + score3 + "\t" + grade);
if (!reader.hasNext()){
outFS.println("");
outFS.printf("Averages: Midterm1 %.2f,Midterm2 %.2f,Final %.2f\n",midterm1/studentNum,midterm2/studentNum,midterm3/studentNum);
}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。