将文件读入数组

时间:2013-11-25 05:48:14

标签: java arrays

好吧,我在这里迫切需要帮助。我正在大学开始编程课程,几乎完成了学期,并且在没有太多困难的情况下理解了大部分内容,但在这种情况下,一切都已经过去了。

我的教授要求我们创建一个程序,该程序将包含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)
{
}

2 个答案:

答案 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