前提・実現したいこと
CSV ファイルを Java で読み込み、平均・中央値(メジアン)・標準偏差を計算して、その結果を別の CSV ファイルに出力するプログラムを作成したいです。
発生している問題・エラーメッセージ
Java初心者で、いろいろ試してみたのですが、まず、ファイルの読み込みと出力ができませんでした。
該当のソースコード
public class StatProc01 {
public static void main(String[] args) throws IOException { // 統計処理:CSVファイルを読み込んで,平均を計算 CsvFileReader reader = new CsvFileReader("C:\Users\alisa\OneDrive\ドキュメント\情報処理技術\workspace\joho-shori\src\statproc\sample.csv"); String[] line; int count = 0; double ave = 0.0; while((line = reader.get()) != null) { //csvファイルの1レコードを読み込む ave += Double.parseDouble(line[5]); //↑6番目(indexは5)をdoubleに変換して足しこむ count++; //レコード数のカウント } ave /= count;//平均の計算 System.out.printf("average = %f\n", ave);//結果の表示
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
public class CsvFileReader { //単純なCSV形式のファイルを読み込む
BufferedReader reader;
public CsvFileReader(String filename) {
//これはtextproc.TextFileReader と同じ
File infile = new File(filename);
FileInputStream fis;
try {
fis = new FileInputStream(infile);
InputStreamReader isr = new InputStreamReader(fis);
reader = new BufferedReader(isr);
}
catch (FileNotFoundException e) {
System.out.println("エラー:");
System.out.println(" ファイルを開けません");
System.exit(0); //強制終了
}
}
public String[] get() throws IOException {
String str = reader.readLine();
if(str == null) {
reader.close();
return null;
}
else {
//String クラスのsplit メソッドを使う
String[] tokens = str.split(",");
return tokens;//リストを返す
}
}
}
package statproc;
import java. io.FileNotFoundException;
import java. io.PrintStream;
import java. util.ArrayList;
public class StatProc02 {
public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ String outfile = "C:\Users\alisa\OneDrive\ドキュメント\情報処理技術\workspace\joho-shori\src\statproc\output.csv"; PrintStream ps = null; try { ps=new PrintStream(outfile); } catch (FileNotFoundException e) { System.out.println("ファイルが開けません"); System.exit(0); }
試したこと
自分でも何をやっているのかわからなくなってしまいました。
上のソースコードに沿わなくてもいいので、1から方法を教えていただきたいです。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー