• 締切済み

携帯用Java CLDC1.1でファイルのロードとセーブ

<環境> IDE:NetBeans 6.1 CLDC 1.1 MIDP 2.0 携帯上でのファイルのロード、セーブの仕方が分かりません。 FileReaderやBufferedReaderがないのでやりかたが分かりません。一応Connectorを使って、こんな感じになりました。 ファイルのロード try { InputStreamReader in = new InputStreamReader   (Connector.openInputStream("C:\\data.txt")); (略) // ここにあるin を使ったメソッドは省略 in.close(); } catch (Exception e) { System.out.println(e); } ファイルのセーブ try { OutputStreamWriter out = new OutputStreamWriter (Connector.openOutputStream("C:\\data.txt")); (略) // ここにあるout を使ったメソッドは省略 out.close(); } catch (Exception e) { System.out.println(e); } どちらもClassNotFoundExceptionとConnectionNotFoundExceptionを返してしまいます。何故なんでしょう?ファイルパスが間違っているようなのですが、Cドライブにたしかにdata.txtは存在しています。 非常に困っています。

noname#200754
noname#200754
  • Java
  • 回答数1
  • ありがとう数1

みんなの回答

noname#94983
noname#94983
回答No.1

当たり前なんだが、C:\\data.txtは、そのパソコンには存在しているかも知れんが、ケータイの中には存在してないだろう? おそらくケータイのエミュレータか何かで動作確認をしているはずでは? ケータイ(MIDP)でファイルを保存できる先は、端末内部のデータフォルダか、メモリカードになる。これはファイルの指定を「file:///ms/○○」あるいは「file:///mc/○○」として指定したはず。そのあたり、再確認しては。

関連するQ&A

  • Javaの簡易クライアント

    メールの閲覧ができるプログラムを作成してコンパイルして実行はできるのですが閲覧ができずエラーが出てしまいます。 正しいソースコードを教えてください。プログラムに詳しい方宜しくお願いします。 画像は実行結果です。 import java.io.*; import java.net.*; public class mail2 { public static void main(String args[]) throws IOException { String server,user,pass,str,num; int port = 110; StringBuffer sb = new StringBuffer(""); Socket sock; BufferedReader sockin; BufferedWriter sockout; System.out.println("サーバーを入力"); BufferedReader serverin = new BufferedReader(new InputStreamReader(System.in)); server = serverin.readLine(); System.out.println("ユーザーを入力"); BufferedReader userin = new BufferedReader(new InputStreamReader(System.in)); user = userin.readLine(); System.out.println("パスワードを入力"); BufferedReader passin = new BufferedReader(new InputStreamReader(System.in)); pass = passin.readLine(); try { sock = new Socket(server, port); sockin = new BufferedReader(new InputStreamReader(sock.getInputStream())); sockout = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream())); sockout.write("USER " + user + "\r\n"); sockout.write("PASS " + pass + "\r\n"); sockout.write("LIST\r\n"); sockout.write("QUIT\r\n"); sockout.flush(); while ((str = sockin.readLine()) != null) { System.out.println(str); } sockout.close(); sockin.close(); sock.close(); } catch (Exception ex) { ex.printStackTrace(); } System.out.println("どのメールを見ますか?"); BufferedReader numin = new BufferedReader(new InputStreamReader(System.in)); num = numin.readLine(); try { sock = new Socket (server, port); sockin = new BufferedReader(new InputStreamReader(sock.getInputStream())); sockout = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream())); sockout.write("USER " + user + "\r\n"); sockout.write("PASS " + pass + "\r\n"); sockout.write("RETR " +num+"\r\n"); sockout.write("QUIT\r\n"); sockout.flush(); while ((str = sockin.readLine()) != null) { System.out.println(str); } sockout.close(); sockin.close(); sock.close(); } catch (Exception ex) { ex.printStackTrace(); } } }

    • ベストアンサー
    • Java
  • Oracleに接続すると、それ以降の処理を素通りしてしまう

    下記のようなメソッドで<1><2>の後、すぐに<7>に処理をしてしまいます。 <1>~<7>と動くと思っていたのですが、<3>~<6>が全て無視されます。 どこか問題があるのでしょうか? ちなみに、<1>で無効なURLを指定するとSQLExceptionでcatchされます。 try { Class.forName("oracle.jdbc.OracleDriver"); try { //<1> conn = DriverManager.getConnection (URL, UID, PSW); //<3> System.out.println("Oracleと接続しました"); } catch (SQLException e) { System.out.println("oracle接続エラー"); } catch (Exception e) { System.out.println("oracle接続エラー"); } //<4> try { //<5> stmt = conn.createStatement(); //<6>sql文の作成 // select文の実行 //(略) } catch (Exception ex3) { System.out.println("なんかエラーです"); } } catch (Exception e){ System.out.println("その他エラーです"); //<2> } finally { //特になし } //<7> return list;

    • ベストアンサー
    • 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で、ファイル名に変数を使ってファイルを作成する方法を教えて下さい。 例えば1.txtから100.txtまで100個のファイル(全部中身は『1』)を作りたい場合でお願いします。 下のコードを100回のforループに入れればいいと思うのですが、 “○○○”の部分がわかりません。 よろしくお願いします。 try {   PrintWriter fout = new PrintWriter(new BufferedWriter(   new FileWriter("○○○.txt"))); fout.println(1); fout.close(); } catch (Exception e) { System.out.println("書き込みエラー:" + e); System.exit(1); }

    • ベストアンサー
    • Java
  • 超基本的な質問?ファイルの変数

    すごく基本的な質問だと思うのですが、 FileWriter 変数をクラスのメンバとしては持てないのでしょうか? たとえば、下のように書くとエラーが出るのですが、何がまずいのでしょうか? import java.io.FileWriter; public class FileTest {   FileWriter fw;   public static void main(String[] args) {     try {       fw = new FileWriter("test.txt");       fw.close();     } catch (Exception e) {     System.out.println("Exception: " + e);     }   } }

    • ベストアンサー
    • Java
  • javaサーバーとポートを入力してメッセージ

    こんにちは、java初心者なのですが、やり方がいまいちわかってないので教えてください。 このプログラムでは、プロンプトからホストナンバーを入力して、フレームが表示されるようになってるんですが、実行するときに、フレーム(swing)を先に表示させて、サーバーとポートを入力してから 数字などを入力できるようにしたいのですが、どうしたらいいのかわからないので教えてください。 サーバーのクラス public class ThreadedEchoServer { public static void main(String[] args) { int i = 1; try { ServerSocket s = new ServerSocket(7776); for (;;) { Socket incoming = s.accept(); System.out.println("Spawning " + i); new ThreadedEchoHandler(incoming, i).start(); i++; } } catch (Exception e) { System.out.println(e); } } } class ThreadedEchoHandler extends Thread { private Socket incoming; private int counter; public ThreadedEchoHandler(Socket i, int c) { incoming = i; counter = c; } public void run() { try { BufferedReader in = new BufferedReader(new InputStreamReader(incoming.getInputStream())); PrintWriter out = new PrintWriter(incoming.getOutputStream(), true); out.println("Hello! Please send me an number (0 to exit)."); boolean done = false; while (!done) { String str = in.readLine(); if (str == null) done = true; else { try { int i = Integer.parseInt(str); if (i == 0) { out.println("End !!!"); done = true; break; } String forClient = (i % 2) == 0 ? " You are wrong " : " You are write "; out.println(forClient); } catch (Exception e) { out.println("Please send a number!"); } } } incoming.close(); } catch (Exception e) { System.out.println(e); } } }

    • ベストアンサー
    • Java
  • javaのメールクライアント

    メールの閲覧ができるプログラムを作成していますが閲覧ができずエラーが出てしまいます。 正しいソースコードを教えてください。 import java.io.*; import java.net.*; public class mail2 { public static void main(String args[]) throws IOException { String server,user,pass,str,num; int port = 110; StringBuffer sb = new StringBuffer(""); Socket sock; BufferedReader sockin; BufferedWriter sockout; System.out.println("サーバーを入力"); BufferedReader serverin = new BufferedReader(new InputStreamReader(System.in)); server = serverin.readLine(); System.out.println("ユーザーを入力"); BufferedReader userin = new BufferedReader(new InputStreamReader(System.in)); user = userin.readLine(); System.out.println("パスワードを入力"); BufferedReader passin = new BufferedReader(new InputStreamReader(System.in)); pass = passin.readLine(); try { sock = new Socket(server, port); sockin = new BufferedReader(new InputStreamReader(sock.getInputStream())); sockout = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream())); sockout.write("USER " + user + "\r\n"); sockout.flush(); sockout.write("PASS " + pass + "\r\n"); sockout.flush(); sockout.write("LIST\r\n"); sockout.flush(); sockout.write("QUIT\r\n"); sockout.flush(); while ((str = sockin.readLine()) != null) { System.out.println(str); } sock.close(); } catch (Exception ex) { ex.printStackTrace(); } System.out.println("どのメールを見ますか?"); BufferedReader numin = new BufferedReader(new InputStreamReader(System.in)); num = numin.readLine(); try { sock = new Socket(server, port); sockin = new BufferedReader(new InputStreamReader(sock.getInputStream())); sockout = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream())); sockout.write("USER " + user + "\r\n"); sockout.flush(); sockout.write("PASS " + pass + "\r\n"); sockout.flush(); sockout.write("LIST\r\n"); sockout.flush(); sockout.write("QUIT\r\n"); sockout.flush(); while ((str = sockin.readLine()) != null) { System.out.println(str); } sock.close(); } catch (Exception ex) { ex.printStackTrace(); } System.out.println("どのメールを見ますか?"); BufferedReader numin = new BufferedReader(new InputStreamReader(System.in)); num = numin.readLine(); try { sock = new Socket (server, port); sockin = new BufferedReader(new InputStreamReader(sock.getInputStream())); sockout = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream())); sockout.write("USER " + user + "\r\n"); sockout.flush(); sockout.write("PASS " + pass + "\r\n"); sockout.flush(); sockout.write("RETR " +num+"\r\n"); sockout.flush(); sockout.write("QUIT\r\n"); sockout.flush(); while ((str = sockin.readLine()) != null) { System.out.println(str); } sock.close(); } catch (Exception ex) { ex.printStackTrace(); } } }

    • ベストアンサー
    • Java
  • 例外処理がまったくわかりません!!

    下のプログラミングについていくつか質問があります。 (1)etest()メソッドってなんですか? (2)存在しないファイルを開くってどういうことですか? (3)FileReader( )対応catch節、Close( )対応catch節ってなんですか? (4)あと、プログラミングあとの本の解説の部分がよくわかりません。抜粋してみます。 「一般的な例外クラスはxxxExceptionというクラス名をしています。このタイプの例外クラスはみな「Exception例外クラス」をスーパークラスにしています。この場合、「catch(Exception e)」を使うとすべてのxxxException例外を補足できるという仕様になっています。ですから下のetest( )メソッドは次のように、ひとつのcatch節で記述することができます。このようにしても表示される4エラーメッセージ(eで指示)は、正しく発生例外(FileNotFoundExceptionまたはIOException) 対応のものになります。」 public static void etest( ) { try { // try節を書く FileReader fr = new FileReader("xfile.txt"); } catch (FileNotFoundException e) { // FileReader( )対応catch節 System.out.println("例外1: " + e); // 例外情報を表示 return; // 戻る } catch (IOException e) { // Close( )対応catch節 System.out.println("例外2: " + e); // 例外情報を表示 return; // 戻る } System.out.println("ファイルは正しくオープンされました"); } } よろしくお願いします。

    • ベストアンサー
    • Java
  • 「IOException は対応する try 文の本体ではスローされません。」というエラー。

    次のようなクラスを作成したのですが、表題のようなエラーが出てしまいます。 PrintWriterクラスのcloseメソッドは、 Closableインターフェースのcloseと witerクラスのcloseと同じ定義だと考えていたので、きっとIOExceptionが発生すると考えていたのですが・・・違うのでしょうか? Finallyの中にtryを書くと何か問題が起こるのでしょうか? ソースをそのまま書くのは気が引けるのですが、どうか教えて頂けないでしょうか? /** * ファイルに文字を書き込むクラス */ class Sample { PrintWriter writer; //書き込むためのクラス public void writerTest() { try { //** テストファイルに書き込み */ writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream("sample.txt",false),"EUC-JP"))); //書き込みを行います writer.println("A"); writer.flush(); } catch(IOException ioe) { System.out.println(ioe.getMessage()); } finally { try { writer.close(); } catch(IOException ioe) //このcatchでエラーが発生します。 { System.out.println(ioe.getMessage()); } } } }

    • ベストアンサー
    • Java
  • 「プログラミング」JAVAのエラーが解決できません。

    ホームページを見たり、メールチェックをしたり、数分間このプログラムを走らせると、 Address already in use: connect java や Connection refused: connect といったエラーメッセージが出ます。 どうすれば、解決するでしょうか? やさしいJAVAやインターネットで調べたのですが良い方法が分かりません。ぜひ、ご教示宜しくお願い致します。 import java.net.*; import java.io.*; import java.util.*; import java.text.*; class Test { public static void main(String[] args) throws Exception { String helloURL; for(int a=1; a<3000; a++) { helloURL = "http://shopping.yahoo.co.jp/"; Th th1 = new Th(helloURL); th1.start(); Thread.sleep(100); } } } class Th extends Thread { String helloURL = null; String line; Th(String str) { this.helloURL = str; } public void run() { try { URL url = new URL(helloURL); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(),"JISAutoDetect")); while ((line = in.readLine()) != null) { try { OutputStream os = new FileOutputStream("log.txt",true); BufferedWriter fr = new BufferedWriter(new OutputStreamWriter(os)); if(line.indexOf("ヤフー") != -1) { fr.write(line); } if(line.indexOf("あ") != -1) { fr.write(line); } fr.close(); os.close(); } catch(Exception e){System.out.println("エラー1 : "+e.getMessage());} } in.close(); } catch(Exception ex){System.out.println("エラー2 : "+ex.getMessage());} } }

    • ベストアンサー
    • Java

専門家に質問してみよう