私は、テキストファイルの各行を繰り返し処理するプログラムをJavaで作成しています。このテキストファイルには、別々の行にある番号が含まれています。プログラムが各行を読み込んで新しいファイルに出力しました。このファイルの行の平均を印刷するにはどうすればよいですか?
しかし、これらの数値の平均値を新しいファイルにも印刷しようとしていますが、各行を浮動小数点または二重として処理する必要があることを理解していますが、これを行う方法がわからない、これは私が今までに持っているものです。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
public class Run {
public static void main(String[] args) throws Exception {
Write(); //call Write method
}
public static void Write() throws Exception {
String line, lineCut;
BufferedReader br = null; //initialise BR- reads text from file
BufferedWriter bw = null; //initialise BR- writes text to file
try
{
br = new BufferedReader(new FileReader("/Users/jbloggs/Documents/input.txt")); //input file
bw = new BufferedWriter(new FileWriter("/Users/jbloggs/Desktop/output.txt")); //output file
line = br.readLine(); // declare string equal to each line
while(line != null) { // iterate over each line
lineCut = line.replaceAll(";" , ","); // replace ; with ,
//lineCut = line.substring(1, line.length());
//int mynewLine = Integer.parseInt(lineCut);
bw.write(lineCut); // write each line to output file
bw.write("\n"); // print each line on a new line
line = br.readLine();
}
System.out.println("success"); //print if program works
br.close();
bw.close();
}
catch(Exception e){
throw(e); // throw exception
}
}
}
はDouble.parseDouble(文字列)またはを参照してくださいFloat.parseFloat(String) – ControlAltDel
入力の例を示してください。各行には1つの番号が含まれていますか? (そのような場合になぜ '.replaceAll'をやっているのかはわかりません)。概念的には、行の各要素をトークン化した位置に行を取得します。 'Double.parseDouble'などを使って数値を取得します。これをアキュムレータに追加します。平均を計算する。 – KevinO