java - 读取给定文件后创建和写入文本文件
问题描述
给定的任务是创建一个程序:
- 从用户那里读取 tsv 文件的文件名。
- 打开tsv文件,读取学生信息。
- 计算每个学生的平均考试成绩。
- 根据平均考试成绩为每个学生分配一个字母等级。
- 计算每次考试的平均值。
- 将学生的姓氏、名字、考试成绩和字母成绩输出到名为 report.txt 的文本文件中。
- 每行输出一个学生,并用制表符分隔值。
- 在report.txt的末尾输出每次考试的平均值,小数点后两位。
我已经完成了这个列表中的所有内容,并且我已经多次测试了我的代码。当我在将其写入文件之前打印它时,一切正常。但问题是,当使用 Fileoutputstream 和 Printwriter 时,我没有得到“report.txt”,并且程序一直说它没有产生任何输出。我也试过 File and 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);
}
}
}
}
解决方案
推荐阅读
- html - 如何将 HTML 标签添加到 UITextView Swift Xcode 中的字符串
- sql - 计算给定日期当月的总工作日数和经过的工作日数
- nginx - 上游响应被缓冲到 nginx 上的临时文件中是什么限制了内存?
- linux - 在文件夹 vsftpd 上不显示任何内容
- python - 多对多关系的SQLAlchemy问题
- java - 不要将空对象包括给杰克逊
- java - ANTLR4 Swift 语法无法识别 for-in 语句
- ios - 使 Facebook 用户能够发帖
- python - Python 依赖项和 Docker 和 Crontab
- php - 基于 Laravel 5 模型和刀片模板构建动态菜单