• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Strutsを使ったファイル送信後の扱いについて)

Strutsを使ったファイル送信後のデータ処理について

このQ&Aのポイント
  • Strutsを使ってCSVファイルからデータを取り扱う際、サーバ側のファイルに書き出してから読み直す方法とBufferedReaderを使用して直接データを処理する方法、どちらが望ましいでしょうか?
  • Strutsを利用してCSVファイルのデータを取り扱う際、サーバ側のファイルに書き出してから読み直す方法とBufferedReaderを使用して直接データを処理する方法の比較をお願いします。
  • Strutsを使用してCSVファイルのデータを処理する際、サーバ側のファイルに書き出してから読み直す方法とBufferedReaderを使用して直接データを処理する方法について、どちらがより効果的なのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#19431
noname#19431
回答No.1

ファイルを保存する必要がなければ、直接でかまわないです。

syakko
質問者

お礼

ご回答ありがとうございます。 DBを使う前にファイル保存してもいいかもですが、特にそうしなければいけない理由はないのですね。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ファイルの書き出し方法について

    お世話になります。 ファイルの出力方法についての質問です。 inputstreamからファイルを作成するとき、もっとも高速に行うにはどのようにすればいいのでしょうか? とりあえず私は // URLクラスのインスタンスを生成 URL myURL = new URL("欲しいページ"); // 接続します URLConnection con = myURL.openConnection(); // 入力ストリームを取得 BufferedReader in = new BufferedReader( new InputStreamReader( con.getInputStream())); String tmp = ""; String str = ""; while((str=in.readLine())!=null){ tmp = tmp + str; } //その後strをファイルに書き出す。 という風にやっておりますが、もっと高速にする方法はないでしょうか? 私なりのイメージではstreamからstreamへ直接渡せないのかな?という ことができないのかなという疑問です。 (いちいちStringになおさなければいけないのかな?ということです。) 以上です。

    • ベストアンサー
    • Java
  • strutsでCSVファイルの取込

    strutsでCSV形式のファイルを取得し、内容を画面に表示するプログラムを作成しています csvファイルの途中で空項目(何も入っていない項目)があると、それ以降ズレて取得されてしまいます。 (違う行になると、また正常に取得できます) 空項目があった場合でも空のまま取得し、それ以降もズレずに取得する方法は無いでしょうか? よろしくお願いします。 ●コーディングの抜粋 String filename = file.getFileName(); InputStream is = file.getInputStream(); InputStreamReader isr = new InputStreamReader(is); while((csvData = ibufr.readLine()) != null){ String data0 = GetArrayToString.getErrElement(csvData,0); String data1 = GetArrayToString.getErrElement(csvData,1); String data2 = GetArrayToString.getErrElement(csvData,2); String data3 = GetArrayToString.getErrElement(csvData,3); String data4 = GetArrayToString.getErrElement(csvData,4); } ●CSVデータ 1行目 → 0,1,2,3,4 2行目 → 0,,2,3,4 ※2行名の2列目が空になっている ●取得結果        data0 data1 data2 data3 data4 1行目 →   0   1   2    3   4 2行目 →   0   2   3    4 ※CSVデータでは、2行2列目の値が空のときに、GetArrayToString.getErrElement()を起動すると、 2行2列目が空なので2行3列目の値を取得していまいます。 それ以降、行が変わるまでズレてしまう。 空の場合、隣の列の値を取得せずに空のまま取得し、それ以降の項目もズレずに取得したいです。 対処方法があればお願いします

    • ベストアンサー
    • Java
  • Socket通信でのデータの受け渡し

    サーバーが受けたデータを、クライアントに返す プログラムですが、 サーバーは、クライアントからのデータを、 while(true){ BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream())); str=br.readLine(); if(str!=null){ PrintWriter pr=new PrintWriter(s.getOutputStream()); pr.println(str); pr.flush(); }}で、返すようにしています。 クライアントも大体同じです(PrintWriterは、 Buttonを押した時に、取得しています)。 考え方としては、inputstreamは、無限ループで、 取得し、outputstreamは、必要におうじて、取得し データを送っています。 しかし、これだと、一度データを送ると、次から データの受け渡しが出来なくなります。 socketか、inputstreamかoutputstreamのどれかが、 閉じるか、使えなくなるのだと思いますが、 いつもここで、悩んでいます。 (また、無限ループで、BufferedReaderオブジェクト をつくり続けるというのも、ちょっと不安)。 どこに問題があるのか、分かる人教えてください。 お願いします。

    • ベストアンサー
    • Java
  • この各行のプログラムの意味を教えてください!

    各行のプログラムがなにをしてるかちょっとわからないので誰か教えてください><お願いします! PrintWriter out=new PrintWriter(socket.getOutStream(),true); out.println("hello,World!"); BufferedReader in=new BufferedReader( new InputStreamReader(socket.getInputStream()); String result=in.readLine();

    • ベストアンサー
    • Java
  • javaで大きなファイルを解析できますか?

    100MBくらいのアクセスログをjavaを使って解析しようと思うのですが、どうしても、エラーが出ます。 読み込み方が間違っているのでしょうか? まったくわかりません。 教えていただけないでしょうか? また、これを知ったきっかけも教えていただけましたら幸いです。 宜しくお願い致します。 読み込みの部分↓↓↓ class kaiseki { public static void main(String[] args) throws Exception { InputStream is = new FileInputStream("log.txt"); BufferedReader br = new BufferedReader(new InputStreamReader(is));

    • ベストアンサー
    • Java
  • StrutsでPOSTのデータ(リクエストボディ)を取得する

    StrutsでPOSTで送ったデータを取得する方法がわかりません。 メッセージボディのデータ param1=aaaa&param2=bbbb の文字列を取得したいと考えています。 executeメソッドの中で ServletInputStream is = request.getInputStream(); byte[] buff = new byte[4096]; int len = is.readLine(buff,0,4096); を行っても lenが-1になってしまいます。 どなたか解決方法を教えていただければと思います。 よろしくお願いします。

  • HTMLが表示されない

        try{       URL url = new URL("https://job.mycom.co.jp/07/regist.cgi");       URLConnection con = url.openConnection();       InputStream is = con.getInputStream();       BufferedReader br = new BufferedReader(new InputStreamReader(is,"EUC-JP"));       BufferedWriter bf = new BufferedWriter(new FileWriter("input.html"));       String temp = null;       while((temp = br.readLine()) != null){         bf.write(temp);       }       br.close();       bf.close();     }catch(Exception e){       e.printStackTrace();     }   } このやり方でHTMLを作成し、開くと、何も表示されません。 どなたか原因を教えてください>< ループ内を System.out.println(temp); に変えて実行するとソースがすべて表示されたので、tempの中身はちゃんと入っていると思われます。

    • ベストアンサー
    • Java
  • StringTokenizerについて

    ファイルの読み込みをStringTokenizerを使ってやりたいのですが、 使い方がいまいち理解できません。今自分で作っているプログラムでは効率が悪いです。 プログラムの一部を載せるのでアドバイスお願いします。 <プログラム> InputStreamReader fisr = new InputStreamReader(client. getInputStream()); BufferedReader fin = new BufferedReader(fisr); String name = fin.readLine(); System.out.println(name); while(n!=10){ FileInputStream objFis = new FileInputStream("eitango"+rand[n]+".txt"); InputStreamReader objlsr = new InputStreamReader(objFis,"Shift_jis"); BufferedReader objBr = new BufferedReader(objlsr); PrintWriter out = new PrintWriter(client.getOutputStream(),true); //1行ずつファイルを読み込む if (n==0){ out.println("Hello,clientNo:" + number +"\n"); } for(a=0;a!=6;a++){ if(a==5){ String ans = objBr.readLine(); ans2 = ans.length(); System.out.println("ans2 = "+ans2); } if(a!=5){ out.println(objBr.readLine()); } }

    • ベストアンサー
    • Java
  • java ファイル操作

    現在javaでファイル操作しファイルの文字列を検索したりファイルに文字列を追加したりする ものを作成しています。 現状のコードはこのような感じです。 class addresskensaku{ public static void main(String[] args)throws IOException{ System.out.println("数字を選択\n1.名前で検索\n2.年齢で検索\n3.出身地で検索\n4.追加"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); char res = str.charAt(0); //1が選択された場合 if(res == '1' || res == '1'){ System.out.println("名前を入力してください。"); BufferedReader fn = new BufferedReader(new InputStreamReader(System.in)); String str1 = fn.readLine(); try{ FileReader freader = new FileReader("addressdata.txt"); BufferedReader breader = new BufferedReader(freader); String tmp = null; //検索 System.out.println("検索結果 :"); while((tmp=breader.readLine())!=null){ String[] words = tmp.split(","); //部分一致 if(words[0].indexOf(str1) != -1){ System.out.println(tmp); } } breader.close(); }catch(IOException e){ System.out.println("e"); } } //2が入力された場合 if(res == '2' || res == '2'){ System.out.println("年齢を入力してください。"); BufferedReader o = new BufferedReader(new InputStreamReader(System.in)); String ol = o.readLine(); try{ FileReader freader = new FileReader("addressdata.txt"); BufferedReader breader = new BufferedReader(freader); String tmp =null; //検索 while((tmp=breader.readLine())!=null){ String[] words = tmp.split(","); //完全一致 if (ol.equals(words[1])){ // System.out.println("検索結果:"); System.out.println(tmp); } } breader.close(); }catch(IOException e){ System.out.println("e"); } } //3が入力された場合 if(res == '3' || res == '3'){ System.out.println("出身地を入力してください。"); BufferedReader p = new BufferedReader(new InputStreamReader(System.in)); String pref = p.readLine(); try{ FileReader freader = new FileReader("addressdata.txt"); BufferedReader breader = new BufferedReader(freader); String tmp = null; //検索 while((tmp=breader.readLine())!=null){ String[] words = tmp.split(","); //部分一致 if(words[2].indexOf(pref) != -1){ System.out.println(tmp); } } breader.close(); }catch(IOException e){ System.out.println("e"); } } //4が入力された場合 追加 if(res == '4' || res == '4'){ //氏名入力 System.out.println("氏名を入力してください。"); BufferedReader n = new BufferedReader(new InputStreamReader(System.in)); String str2 = n.readLine(); //年齢入力 System.out.println("年齢を入力してください。"); BufferedReader o = new BufferedReader(new InputStreamReader(System.in)); String str3 = o.readLine(); //住所入力 System.out.println("住所を入力してください。"); BufferedReader a = new BufferedReader(new InputStreamReader(System.in)); String str4 = a.readLine(); //ファイルに書き込み try{ File file = new File("addressdata.txt"); FileWriter filewriter = new FileWriter(file, true); filewriter.write(str2+","+str3+","+str4+"\r\n"); filewriter.close(); }catch(IOException e){ System.out.println("e"); } } } } これをカプセル化し 各機能ごとにメソッドを分けて作ろうかなと思っています。 結果の出力はmainでやる予定です。

  • java わからない。

    今、卒業研究でJAVAを扱っています。 しかし、思った動作をするプログラムが作れません。 時間もなくなってきたので、okwaveに投稿しました。 お願いします。 パソコンはwindowsです。 プログラムを実行すると, (1)コマンドプロセッサでdirを実行してくれる。 (2)実行した後にファイルにする。 実行するときは[dir > dir.txt]のようにしたいです。 今まで書いてきた例をいかに描きます。 import java.io.*; public class TestExec1 { public static void main(String[] args) { try { String s1 = "dir"; Process process = Runtime.getRuntime().exec(s1); InputStream is = process.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String line; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (Exception e) { e.printStackTrace(); } } } どこが間違っているかわかりません。 よろしくお願いします。