好吧,我在这里迫切需要帮助。我正在大学开始编程课程,几乎完成了学期,并且在没有太多困难的情况下理解了大部分内容,但在这种情况下,一切都已经过去了。
我的教授要求我们创建一个程序,该程序将包含2个字段的文本文件读取到数组中。第一个字段包含数字1-7,表示星期几,第二个字段包含当天的温度。
一旦程序将文件读入数组,你必须找到一周中每一天的平均温度(例如5个星期一都有不同的温度,平均值是多少?)然后它需要计算高温和低温
完成此操作后,程序需要将信息写入新文件
Day__High__Low __Avg
1
2
3
4
现在我已经为此工作了两个星期,教授已经将截止日期延长了一个星期,我的课程明天到期,所以我需要帮助。
我需要的是一种将txt文件读入数组的简单方法,然后我将自己做逻辑,然后将一个简单的方法写入另一个文件。我已经尝试了十几个观看过几个视频的内容,但我无法让任何事情发挥作用。
一旦我能够阅读并写入文件,我就有信心找出完成工作的逻辑。
请帮助
尝试了一些类似的
try {
Scanner scanner = new Scanner(new File("inputfile.dat"));
}
catch(Exception e)
{
}
答案 0 :(得分:0)
几乎任何读取文本然后输出文本程序的IO骨架:
Scanner data = new Scanner(new FileInputStream(<file>));
while (data.hasNextLine()) {
String dataPoint = data.nextLine();
...
}
...
PrintStream output = new PrintStream(<file>);
for (...) {
output.println(...);
}
output.close();
您需要为IO异常添加适当的try-catch块。
答案 1 :(得分:0)
我尝试使用Scanner和PrintWriter创建代码:
import java.awt.PageAttributes;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
public class CalcAvgTemp {
public static void main(String[] args) throws FileNotFoundException {
File inFile = new File("E:\\inputFile.txt");
File outFile = new File("E:\\outputFile.txt");
int[] day = new int[7];
int[] count = new int[7];
Scanner sc = new Scanner(inFile);
sc.nextLine(); // move to second line assuming file is not empty.
while(sc.hasNextLine()) {
String s = sc.nextLine().trim();
String[] splitStr = s.split(" ");
day[Integer.parseInt(splitStr[0])-1] += Integer.parseInt(splitStr[1]);
count[Integer.parseInt(splitStr[0])-1]++;
}
PrintWriter outFileWriter = new PrintWriter(outFile);
outFileWriter.println("Day__High__Low __Avg");
for(int i=0;i<7;i++) {
int j=i+1;
double d = (double)day[i]/count[i];
outFileWriter.println(j + " " + d);
}
outFileWriter.close();
}
}
我使用输入文件:
day temp
1 20
2 30
3 40
4 20
5 60
6 30
7 10
1 34
2 34
3 32
4 34
5 45
6 34
7 23
1 12
2 10
3 20
4 23
5 67
6 23
7 12
1 26
我输出为:
Day__High__Low __Avg
1 23.0
2 24.666666666666668
3 30.666666666666668
4 25.666666666666668
5 57.333333333333336
6 29.0
7 15.0