• 締切済み

「得た値をCSV出力するJAVAプログラムを書きたい」

「得た値をCSV出力するJAVAプログラムを書きたい」 固定したある点とクリックした点の距離は取得できました つまり、クリックするごとに2点間の距離は変わります 例えば 1回目:10cm 2回目:20cm 3回目:5cm とします 流れはクリック→10cmという値を取得→クリック→20cmという値を取得→・・・ するとCSVファイルには10,20,5という風に出力されるようにJAVAプログラムを書きたいです 色々調べたんですが、読み込みの方法がいまいちわかりません(全体的なこともですが・・・) データベースを読み込むとかはよく見かけるのですが。 また、実行したら勝手にCSVファイルが出来るのか? 下記のプログラムまでは出来ました import java.io.*; public static void main( String args[] ) { try { PrintWriter pw = new PrintWriter( new BufferedWriter( new FileWriter( "output.csv" ) ) ); pw.println( "kyori" ); System.out.println( "ファイルに書き込みました。" ); pw.close(); } catch( IOException exp ) { System.out.println( "入出力エラーです。" ); } } 何かアドバイスをお願いします。

みんなの回答

  • hideishi
  • ベストアンサー率55% (5/9)
回答No.3

//基本的なCSV出力処理のサンプルコードです。 import java.io.*; public class Test2 { private void exec() { String[] lines = { "1_1, 1_2, 1_3", "2_1, 2_2, 2_3" }; try { FileOutputStream fos = new FileOutputStream("output.txt"); OutputStreamWriter osw = new OutputStreamWriter(fos, "Shift_JIS"); BufferedWriter bfw = new BufferedWriter(osw); // 配列データ(lines)を書き込む for (int i = 0; i < lines.length; i++) { // ファイルに1行分の内容を書き込む bfw.write(lines[i]); // 改行をセットする bfw.newLine(); } // ファイルオブジェクトを破棄する bfw.close(); osw.close(); fos.close(); } catch (IOException ex) { // エラーメッセージ出力 System.out.println(ex.getMessage()); } } public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ Test2 tp = new Test2(); tp.exec(); } } ファイル入出力処理の詳細については、 http://www.javaroad.jp/java_io4.htm http://www.letsstudy.net/java/603/Notes.html などを参照してください。

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 現在そのクリックして値を取得している処理がどのようになっているかわからないので何ともいえません。 今はどのようにクリックした座標を取得しているのでしょうか。 また、動作がアプレットなのかSwing等のアプリなのか何で動いているのでしょうか。 例えばMouseListener等を利用してクリック時の処理をしているならメンバ変数に List<Kyori>listKyori = new ArrayList<Kyori>(); public void mouseReleased( MouseEvent e ) {  // クリックされたとき  listKyori.add ( new Kyori(計算後のint値} ); } のような感じで値をaddしていくとアプリを終了するまではlistKyoriに計算した値で生成されたKyoriクラスが作られていきます。 「CSV出力」みたいなボタンや10回繰り返したら等の条件後にCSV出力の部分を実行すればlistKyoriに追加されていた値がCSVとして展開されます。 読み込みというのが何か別のファイルに値が保存されている等でしたらそのファイルのフォーマット等がわからないと具体的なアドバイスが難しいです。 ・現在どのような仕様で動いているのか(全体的に)またはどのような動かし方を考えているのか(具体的に) この辺を補足下さい。

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 >色々調べたんですが、読み込みの方法がいまいちわかりません(全体的なこともですが・・・) 読み込みの方法とは何を読み込むということでしょうか。 >また、実行したら勝手にCSVファイルが出来るのか? CSVって単なるフォーマットみたいなものですので自分で作るだけです。 クリックした値をどのように保持しているかわかりませんが、その保持している値をカンマ区切りの文字列にしてファイルに出力すればOKです。 String csvStr = "10,20,5"; pw.println ( csvStr ); 例えばですが距離クラスを作成しておいて class Kyori {  private int kyori;  public Kyori ( final int kyori ) {   this.kyori = kyori;  }  public String getKyori() {   return String.valueOf(this.kyori);  } } クリックするごとに上のクラスを生成してリストに入れます。 List<Kyori>list = new ArrayList<Kyori>(); // クリック時 list.add ( new Kyori(クリック座標) ); // CSVを作る int max = list.size(); for ( int i = 0; i < max; i ++ ) {  if ( i > 0 ) {   pw.print ( "," );  }  Kyori kyori = list.get(i);  pw.print ( kyori.getKyori() ); } こんな感じにしてあげればリストに追加されたKyoriクラス分(クリック分)がカンマ区切りの文字列ファイルとして出力されると思います。 (実際に動作の確認はしていないのでコンパイルエラー等責任は負いかねます。いろいろ試してみてください)

aoi321
質問者

補足

読み込みの方法・・・つまり保持の方法がわかりません どういう方法があるか教えていただけませんか?

関連するQ&A