salsberry の回答履歴
- Java初心者です。どうぞお教えください。
CSVファイルを読み込んで、ソートしてから、現在日時のファイル名でCSVで書き出します。以下のファイルでは、CSVで書き出せません。現在日時のファイル名をつける方法もよくわかりません。どうぞ教えてください。importは省略しています。 public class CSVdata { public static void main(String[] args) { String fname = " " ; ArrayList<String> list = new ArrayList<String>(); String save_filename = getFileName(); if(args.length>0) { fname = args[0]; } try { BufferedReader reader = new BufferedReader( new FileReader(fname) ); String Line = null; while ((Line = reader.readLine()) != null) { list.add(Line); } reader.close(); Collections.sort(list ); PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(save_filename + ".csv"))); for (String string : list) { writer.println(string); } writer.close(); } catch (FileNotFoundException e) { System.out.println("ファイルがありません"); } catch (IOException e) { System.out.println("ファイルがありません"); } } public static String getFileName(){ Date d = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss"); return sdf.format(d); } }
- JAVAのソースについて
独学でandroidを勉強しています。 タイマーのソースを見ていたのですが、何故この記述になるか点でさっぱりわかりませんどなたか分かりやすく教えてください。 特に「 timer.schedule( new TimerTask() {~」の部分が分かりません。 もし出来るのならば分かりやすく分解して書きたいのですが可能でしょうか? お願いします。 public void onCreate(Bundle icicle) { super.onCreate(icicle); getWindow().setFormat(PixelFormat.TRANSLUCENT); setContentView(new TimerView(this)); timer = new Timer(true); final Handler handler = new Handler(); timer.schedule( new TimerTask() {public void run() {handler.post( new Runnable(){public void run(){ second++; if(second==59){ minute=minute+1; second=00; } if(minute==59){ hour=hour+1; minute=00; } }});}}, 1000, 1000); }
- JAVAのソースについて
独学でandroidを勉強しています。 タイマーのソースを見ていたのですが、何故この記述になるか点でさっぱりわかりませんどなたか分かりやすく教えてください。 特に「 timer.schedule( new TimerTask() {~」の部分が分かりません。 もし出来るのならば分かりやすく分解して書きたいのですが可能でしょうか? お願いします。 public void onCreate(Bundle icicle) { super.onCreate(icicle); getWindow().setFormat(PixelFormat.TRANSLUCENT); setContentView(new TimerView(this)); timer = new Timer(true); final Handler handler = new Handler(); timer.schedule( new TimerTask() {public void run() {handler.post( new Runnable(){public void run(){ second++; if(second==59){ minute=minute+1; second=00; } if(minute==59){ hour=hour+1; minute=00; } }});}}, 1000, 1000); }
- bmpファイルから色情報を取り出すプログラム
ビットマップから色情報を取り出すプログラム bmp2hex 色情報からビットマップを作成するプログラム hex2bmp を作れる方、またはソースの場所を知っている方がいましたら 教えてください。引数は 縦の長さ 横の長さでお願いします。
- Mac&Eclipseで、エラーが出て動きません。
使用環境 MacOSX 10.6.8 Eclipse 3.5 エラーメッセージは以下の通りです。 Unable to locate the JVM for project <プロジェクト名> Please verify that you have a project-level JVM installed by inspecting your project's build path. エラーメッセージで検索をかけてみましたが、原因がよく分からないままです。 試しにEclipseを一度、再インストールしてみましたが、同じようにエラーが出ます。 誰か、原因及び解決法が分かる人がいましたら、回答よろしくお願いします。
- ベストアンサー
- Java
- ashitaka710
- 回答数2
- Mac&Eclipseで、エラーが出て動きません。
使用環境 MacOSX 10.6.8 Eclipse 3.5 エラーメッセージは以下の通りです。 Unable to locate the JVM for project <プロジェクト名> Please verify that you have a project-level JVM installed by inspecting your project's build path. エラーメッセージで検索をかけてみましたが、原因がよく分からないままです。 試しにEclipseを一度、再インストールしてみましたが、同じようにエラーが出ます。 誰か、原因及び解決法が分かる人がいましたら、回答よろしくお願いします。
- ベストアンサー
- Java
- ashitaka710
- 回答数2
- C言語での文字の連結
こんにちは。 C言語で困っているので、どなたかご教示お願いいたします。 char buff[16]に「東京」(JIS)という文字の16進表示の文字列が格納されており、 その先頭にJISコードの始まりである = 1B2442(0x1B2442) をつけたいのですが、 連結の仕方がわかりません。 最終的に使いたいのはJISコードの始まりが連結されたbuffです。 すみませんが、教えてください!
- ベストアンサー
- C・C++・C#
- noname#229153
- 回答数3
- javaで配列の配列を使うには
javaで、文字列3個を要素とするstringArray[3]を要素とする配列arrayArrayを使いたいのですが、どうすればよいでしょうか。 2011年10月2日
- javaで配列の配列を使うには
javaで、文字列3個を要素とするstringArray[3]を要素とする配列arrayArrayを使いたいのですが、どうすればよいでしょうか。 2011年10月2日
- Dimensionクラスの使い方
Javaを始めたばかりの者です。 参考書を読みながら進めていて下記のソースコードで Dimensionクラスを使用している箇所で行き詰まりました。 使われていたのは、以下のコード --------------------------------------------------------------------------------------------------------------------- import java.awt.*; import javax.swing.*; import java.util.*; class xxx{ static public void main(String[] argv){ /*標準入力からmsgに文字列を入力*/ String msg = scan.next(); /*JLabelクラス型のオブジェクト型変数を作成し、インスタンスを生成*/ JLabel label = new JLabel(msg); /*JLabelのインスタンスのコンストラクタに入力されたmsgのサイズを取得*/ Dimension dim = label.getPreferredSize(); ・・・etc } } ---------------------------------------------------------------------------------------------------------------------- 自分が今まで使ってきたクラスは下記のような感じで使っていましたが、ここではnewしていない。 これは、どういうことなんでしょうか? クラス名 dim = new クラス名(); インスタンス作成 = コンストラクタの呼び出し。 new演算子はクラスのコンストラクタを呼び出している理解ですが Dimension dim = label.getPreferredSize(); 上記のコードではDimentionクラスのインスタンスは作られていないということだと思います。 ということは、 ここでは何をしているのでしょうか? どなたか、教えて下さい。
- javaによるファイル送信のプログラム
ユニキャスト通信のおけるプログラミングで、1のプログラムを2のプログラムを使ってファイル送信ができるようにしたいのですがうまくいきません。私のjavaの知識が授業についていかなくて図書館でいろいろと本を探したのですが見つかりませんでした。誰か教えていただけませんか? /*1*/ import java.net.*; import java.io.*; public class udpechoServer{ static final int echo_PORT = 7; //エコーポート番号 static final int BUFSIZE = 1024; //バッファサイズ public static void main(String[] args) throws IOException{ int port = echo_PORT; //ポート番号 int cliport; //クライアントポート番号 int len; //データ長 int i; //キーインバッファクリアインデックス DatagramSocket sock = null; //データグラムソケット宣言,初期化 byte[] buf = new byte[BUFSIZE]; byte[] wbuf = new byte[BUFSIZE]; String recvdata; //受信データ try{ sock = new DatagramSocket(port); DatagramPacket recvpacket = new DatagramPacket(buf,BUFSIZE); DatagramPacket sendpacket = new DatagramPacket(buf,BUFSIZE); System.out.println("Connected to echo server"); while(true){ sock.receive(recvpacket); //データ受信 recvdata = new String(recvpacket.getData(),0,recvpacket.getLength()); recvdata = recvdata.trim(); //トリミング(CRLF) wbuf = recvdata.getBytes(); //文字列→バイト配列変換 i = 0; len = wbuf.length; buf = new byte[BUFSIZE]; while(wbuf[i] != 0x0d){ //途中のCR検出 buf[i] = wbuf[i]; //データコピー i++; if(i >=len){ break; } } recvdata = new String(buf,0,i); //バイト配列→文字列変換 System.out.println(recvdata); //画面出力 InetAddress ipadr = recvpacket.getAddress(); cliport = recvpacket.getPort(); buf = recvdata.getBytes(); len = buf.length; sendpacket = new DatagramPacket(buf,len,ipadr,cliport); sock.send(sendpacket); //データ送信 recvpacket.setLength(BUFSIZE); //データグラムパケット長リセット } }catch(SocketException e){ e.printStackTrace(); } } } /*2 */ import java.io.*; class FileCopy { public static void main(String argv[]){ try{ InputStream in = new FileInputStream(argv[0]); //入力ファイルを開く //BufferedInputStreamオブジェクトの生成 BufferedInputStream bin = new BufferedInputStream(in); OutputStream out = new FileOutputStream(argv[1]); //出力ファイルを開く //BufferedOutputStreamオブジェクトの生成 BufferedOutputStream bout = new BufferedOutputStream(out); byte buf[] = new byte[1024]; int c; //読み込みデータがなくなるまで読み込み while((c = bin.read(buf, 0, buf.length)) != -1){ bout.write(buf, 0, c); //データの書き込み処理 } System.out.println("\""+argv[0]+"\" was converted into \""+argv[1]+"\""); bin.close(); //入力ファイルを閉じる bout.close(); //出力ファイルを閉じる }catch(Exception e){} } }
- ベストアンサー
- Java
- mukkutaishi
- 回答数2
- javaによるファイル送信のプログラム
ユニキャスト通信のおけるプログラミングで、1のプログラムを2のプログラムを使ってファイル送信ができるようにしたいのですがうまくいきません。私のjavaの知識が授業についていかなくて図書館でいろいろと本を探したのですが見つかりませんでした。誰か教えていただけませんか? /*1*/ import java.net.*; import java.io.*; public class udpechoServer{ static final int echo_PORT = 7; //エコーポート番号 static final int BUFSIZE = 1024; //バッファサイズ public static void main(String[] args) throws IOException{ int port = echo_PORT; //ポート番号 int cliport; //クライアントポート番号 int len; //データ長 int i; //キーインバッファクリアインデックス DatagramSocket sock = null; //データグラムソケット宣言,初期化 byte[] buf = new byte[BUFSIZE]; byte[] wbuf = new byte[BUFSIZE]; String recvdata; //受信データ try{ sock = new DatagramSocket(port); DatagramPacket recvpacket = new DatagramPacket(buf,BUFSIZE); DatagramPacket sendpacket = new DatagramPacket(buf,BUFSIZE); System.out.println("Connected to echo server"); while(true){ sock.receive(recvpacket); //データ受信 recvdata = new String(recvpacket.getData(),0,recvpacket.getLength()); recvdata = recvdata.trim(); //トリミング(CRLF) wbuf = recvdata.getBytes(); //文字列→バイト配列変換 i = 0; len = wbuf.length; buf = new byte[BUFSIZE]; while(wbuf[i] != 0x0d){ //途中のCR検出 buf[i] = wbuf[i]; //データコピー i++; if(i >=len){ break; } } recvdata = new String(buf,0,i); //バイト配列→文字列変換 System.out.println(recvdata); //画面出力 InetAddress ipadr = recvpacket.getAddress(); cliport = recvpacket.getPort(); buf = recvdata.getBytes(); len = buf.length; sendpacket = new DatagramPacket(buf,len,ipadr,cliport); sock.send(sendpacket); //データ送信 recvpacket.setLength(BUFSIZE); //データグラムパケット長リセット } }catch(SocketException e){ e.printStackTrace(); } } } /*2 */ import java.io.*; class FileCopy { public static void main(String argv[]){ try{ InputStream in = new FileInputStream(argv[0]); //入力ファイルを開く //BufferedInputStreamオブジェクトの生成 BufferedInputStream bin = new BufferedInputStream(in); OutputStream out = new FileOutputStream(argv[1]); //出力ファイルを開く //BufferedOutputStreamオブジェクトの生成 BufferedOutputStream bout = new BufferedOutputStream(out); byte buf[] = new byte[1024]; int c; //読み込みデータがなくなるまで読み込み while((c = bin.read(buf, 0, buf.length)) != -1){ bout.write(buf, 0, c); //データの書き込み処理 } System.out.println("\""+argv[0]+"\" was converted into \""+argv[1]+"\""); bin.close(); //入力ファイルを閉じる bout.close(); //出力ファイルを閉じる }catch(Exception e){} } }
- ベストアンサー
- Java
- mukkutaishi
- 回答数2
- java linkedlistのメソッドについて
javaのlinkedlistを勉強してます。 LinkedList<String> array = new LinkedList<String>(); array.add("A"); array.add("B"); 上記のようにしてLinkedListに要素を入れることができたりすることは理解できたのですが addメソッドやremoveメソッドの使い方がよくわかりません。 addメソッドなどはいつ、どのようなときに使うのでしょうか? 上で書いたような方法だけでは不十分なのでしょうか? できればメソッドの使い方のサンプルがあったらいただけないでしょうか? それと僕の使っている教科書にはNodeというものがありnextとdataというものを入れなければならないのですがこちらも使い方がわかりません。 質問が抽象的になってしまいましたがわかる方回答お願いいたします。
- ベストアンサー
- Java
- KaYoukAyOu
- 回答数4
- テキストファイルの特定の一行だけを表示する方法
テキストファイルの特定の一行だけを表示する方法を教えてください。 具体的には、text.txtを読み込んでおき、nと入力されたら、n行目を表示させたいです。 ・ファイルを読み込む ・ユーザーからの入力を待つ ・String line = text.txtのn行目の文字列; というようにする← ・lineを表示する というプログラムになるかと思いますが、特に矢印のついているところが分かりません。 初学者なのでかなり単純な質問とは思いますが、よろしければお教えください。
- return文について質問
以下は、あるJavaの参考書の問題を僕が解いてソースコードに起こしたものです。その際のエラーが出てしまうことについて、その原因を質問させていただきます。 package 第16章; public class 練習16_4_4 { public static void main(String[]arg){ double[]dt={55.1,23.0,168.8,25.6,33.1,101.5}; System.out.println(isOver100(dt)); } public static boolean isOver100(double[]a){ for(double x:a){ if(x>100.0){ return true; }else{ return false; } } } } 質問:『public static boolean isOver100(double[]a){』、ここの部分でエラーとして「このメソッドは型booleanの結果を戻す必要があります」と表示されます。何故ですか?だって、return文で型booleanであるtrueやfalse返してるのに、、 まったく原因わかりません。
- 正規表現のことです。
今、Javaで正規表現の勉強をしています。 この問題が、どうしても分かりません。 ¥(0¥|[+-]?[1-9][0-9]*¥)¥(¥.[0-9]+¥)? 小数点があるのかな?という感じです。 あと、数字しかないことぐらいです。 どなたかよろしくお願いいたします。
- 正規表現で全角文字を全て削除したい
正規表現を使ってアスキーコード文字以外の全角文字を全て削除しようとしたのですが、ユーロ記号 € が削除できませんでした。 以下は英小文字以外全て削除しようとしたものです。 英小文字以外や全角文字は削除できているようですが、ユーロ記号が削除されません。 mb_ereg_replace ('[^a-z]', "", $str); error_logを使って確認してみるとそもそもブラウザから送られてきたきた時点で &#8364; となっています。(ユーロ記号そのものがこの場に表示されてしまうので全角で明記していますが実際は7文字全て半角です。) これが正しい挙動なのかどうかも判断がつきかねています。(コード番号そのものはユーロ記号のようですが) error_log($_POST['moji'], 0); 以下のようにアスキーコード以外全て削除という指定も削除されませんでした。 &#8364; をアスキーコード7文字として一つ一つ処理しているようです。 mb_ereg_replace ('[^\x00-\x7f]', "", $str); ちなみにこの &#8364; の入った $str をHTMLを使いブラウザに出力してやるとちゃんとユーロ記号が表示されます。 <pre>{$str}</pre> mb_internal_encodingやmb_regex_encodingの設定などいろいろ試してみたのですがうまくいきませんでした。 この文章を書いていて今思ったのですが、ひょっとしてまず &#と; で挟まれたものを削除するというのがこの問題の一般的な解決方法なのでしょうか。そうすればユーロ記号 &#8364; も削除できますし。もしそうならその辺の事情も解説あるいはURL明記していただけると助かります。 (でもこれ、アスキーコードは残したい場合にたまたま &#8364; というユーロ記号を意図しないただの半角7文字の文が入力されてきてしまっても削除されるということになっちゃいますね。これはやっぱりしょうがないのですかね。) よろしくお願いします。
- ベストアンサー
- PHP
- ankodaisuki
- 回答数2
- javaプログラムから他のjavaプログラムを操作
javaのプログラムから他のjavaプログラムを操作するにはどのようにすればいいのでしょうか? 他の方が作った既存のjavaプログラムのウィンドウ内のリストビューの項目を自動的に選択したり、エディットビューの表示文字列をクリップボードにコピーしたいと思っています。 Windowsネイティブプログラムから他のWindowsネイティブプログラムを操作する場合は、FindWindowで親ウィンドウのウィンドウハンドルを取得し、そこからFindWindowExで子ウィンドウのハンドルを取得してサブクラス化するそうですが、javaではどうやるのかが知りたいです。 また、子ウィンドウのハンドルを得るために子ウィンドウを特定するための情報(Windowsネイティブプログラムなら、FindWindowExに引数として渡す「GetClassNameで得られるクラス名」)はどのようにすれば調べられるのでしょうか(EnumChildWindows、GetClassNameなどに該当するメンバ関数はあるのでしょうか)?
- eclipseでデバックするとエラー発生
eclipse上でプログラムをコンパイルすると正常にコンパイルできるのに、それをデバックすると「”プログラム名”の起動に問題が発生しました。VMに接続できません。」とのエラーメッセージが表示されます。また、そのときに詳細ボタンをクリックすると「VMに接続できません socket closed」と表示されます。色々調べてみましたが、ファイアーウォールの設定やウィルスソフトの設定の問題である可能性があるようですが私には解かりませんでした。因みに私のPCはウィルスソフトは入っていません。この状況でどうすればデバックができるようになるでしょうか?誰か親切丁寧に教えてください。
- 締切済み
- Java
- nobunaga1582
- 回答数1
- Jarファイル内のクラスパスについて
Jarファイルをダブルクリックするだけで動作するプログラムを作成しており、 プログラムを起動するとException in thread "main" java.lang.NoClassDefFoundErrorが発生します。 プログラムでやろうとしていることは以下のとおりです。 (1)1つのJarファイルだけで動作する (2)他の人が作ったJarファイル(ライブラリ)を使用する ⇒そのため、JarにJarを取り込んでいる(EclipseのRunnableJar作成機能を利用) (3)プログラムは親プロセス、子プロセス用の2つのmainクラスを持ち、 親プロセス実行後に、子プロセスをProcessBuilderで生成する (4)子プロセスでライブラリを使用して色々やる どうやら、子プロセスがライブラリを呼び出した時点でNoClassDefFoundErrorが発生するようです。 どのようにしたら、子プロセスがJar内のJarを参照することが出来るようになるのでしょうか? 知恵を貸してください。よろしくお願いします。
- ベストアンサー
- Java
- kumakichiX
- 回答数1