- PR -

次のファイルを使用したJavaファイル作成のヒントを下さい

投稿者投稿内容
Kazuki
ぬし
会議室デビュー日: 2004/10/13
投稿数: 298
投稿日時: 2009-04-15 06:49
引用:


それと、元々ここのスレの本題であったファイルのサンプルが届いたので貼り付けます。
できれば、このソースコードの率直なご意見を聞きたいですね。


届いたんですか??
dejavuさんが書かれたのではなくて?

コード:
public class Enshu1 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		//引数チェック
		if (args.length < 1) {
			System.out.println("引数を入力して下さい。");
			System.exit(0);
		}
		//第1引数で書き込みと読み取りを判別
		String option = args[0];
		if (option.compareToIgnoreCase("w")==0) {
			//書き込み
			String[] output = new String[args.length -1];
			for (int i=0; i<output.length; i++) {
				output[i] = args[i+1];
			}
			new FileIOSample().fileSave(output);
		}else if (option.compareToIgnoreCase("r")==0) {
			//読み取り
			String[] input = new FileIOSample().fileRead();
			for (int j=0; j<input.length; j++) {
				System.out.println(input[j]);
			}
		}else{
			//エラー
			System.out.println("引数を正しく入力して下さい。");
			System.exit(0);
		}
	}

}


感じたことをつらつらと
1.TODOコメントは消したほうがいいです
2.私の場合はSystem.exitするならreturnでmainを抜けます
3.「// 書き込み」の後のforループでの配列のコピーは
  System.arrayCopyを使うほうがいいかも
わたなべ
大ベテラン
会議室デビュー日: 2007/12/09
投稿数: 123
お住まい・勤務地: 札幌
投稿日時: 2009-04-15 09:05
はっきりと言われていないようなので単刀直入に書きますが、
・Java言語仕様 第3版
・プログラミング言語Java
・マスタリングJavaEE5
これらを現在のdejavuさんが読破することは無理です。

・Javaチュートリアル 第4版
これに関しても、相当な覚悟がないと初学者がやるには厳しい本です。
理由は厚いこと、邦訳であることです。
初学者は、薄く、読みやすく、サンプルが多く、でもデタラメは書いていない本が望ましいでしょう。

まずは、敷居の低い入門本を1冊終わった後にチャレンジした方が良いです。
最近では、
・解きながら学ぶJava 入門編
が立ち読みした感じでは良いと思います。

とにかく他人の話を聞く事も重要ですが、他人の書いたコードを読まなければダメです。
言語仕様だけ読んでもコードは書けるようになりません。
変数とか配列とかループとかオブジェクトとか基礎的な部分で詰まった場合は、
・なぜプログラミングができないのか―イメージとパターンで学ぶJavaプログラミング
がおススメです。
以前、新人研修をやった事がありますが、非常に出来の悪い人が数名いました。
その中でもこの本をちゃんと読んだ人は気付けば普通にコードが書けるレベルになっています。
デューン
大ベテラン
会議室デビュー日: 2004/04/21
投稿数: 174
お住まい・勤務地: Tokyo
投稿日時: 2009-04-15 09:24
FileIOSampleが届いて、Enshu1.javaを書いたってことなのでは?

私も正常終了のときはreturnの方が好きです。
エラーでexitをつかうなら、0以外の値を返すべきですね。




[ メッセージ編集済み 編集者: デューン 編集日時 2009-04-15 09:24 ]
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2009-04-15 10:23
意図的に任意のリターンコードを返す以外、
System.exit(int)は使うべきではありません。
リターンコードが0と0以外という考え方ならば、
例外のスローによる終了でも0以外にはなります。
なので大抵は不要かと思います。

このメソッドはVMの強制終了のためにあるメソッドであり、
シャットダウンシーケンスが適切に実装されていない限り、
正しい終了処理というのはできません。
Windowsでいうならば、毎回タスクマネージャで強制終了するようなものです。
dejavu
ベテラン
会議室デビュー日: 2009/03/13
投稿数: 71
投稿日時: 2009-04-15 12:24
かつのりさん、アドバイスありがとうございます。
引用:

人によって理解度や理解力が違いますので、
なかなかお勧めするのは難しいという現実もあります。
一度大型書店へ足を運んで選んでみてはいかがでしょうか。


全国共通の大型書店というと、思い浮かぶのが有隣堂ですかね。
八重洲ブックセンターも大きいですけど東京になっちゃうし、後はデカい書店でもプログラミングの本は無かったりするところとかありますからね。
しかも、数冊単位で買うので重い。
という事で地元の有隣堂かやっぱオンライン書店になってしまいますね。
有隣堂にもない本がAmazon.co.jpにはありますからね。
手にとって見るという事の大切さというのか、かつのりさんのおっしゃりたい事は理解しているつもりです。
逆もありますからね。たまたま書店で見つけた本とか。
その書店に行かなければ、永遠に巡り合わなかっただろう発掘本ですね。
後、分厚い本の立ち読みって辛くないですかね。
図書館みたいに座って読める書店もありますが、それはほとんどまれです。
かつのりさんのアドバイスは最もな事だと思います。
プロのプログラマなら当たり前の行動かもしれませんね。
引用:

Java言語仕様やEffective Javaあたりは、私も今なら普通に読めますが、
業界に入りたての時は、正直読んでも意味不明な感じでした。
ですので、網羅的なバイブルのような本を入手するのも結構ですが、
サクっと読めるものから読んでいくというのも、ありなのかなと思います。


そうですか。目次を読む限りには読めそうな気がしたのですけどね。
かつのりさんが意味不明なら、俺なんか余計意味不明でしょうね。
1つお訊きしたいのは、本に書いてある内容が意味不明なのでしょうか。
何を書いているのか理解できない、という事でしょうか。
それともIT業界の専門用語だらけ、とか。
そうすると、自分が読めるかどうかその本を手にとって見てみる重要性が出てきますね。
引用:

Java言語仕様についてはJavaの公式サイトにHTMLで置いてありますので、
自分にとっては買うまでもないという印象です。
とはいえ、お勧めはなんだ?といわれると、
何だかんだで大体皆さんとお勧めは被ってしまいます。
そしてsawatさんが書かれたリンク先の、
JavaBlackさんの非推奨の本は、私も激しく同意です。


HTMLで書いてあるサイトがあるのですか。
もしかしてこのサイトの事ですかね。
もしビンゴなら自分も何が書いてあるのか意味不明です。
ここからも続きですけど、やっぱり1度自分の目で本の内容を確認する必要性があると思います。
完璧お手上げです、ハイ。
dejavu
ベテラン
会議室デビュー日: 2009/03/13
投稿数: 71
投稿日時: 2009-04-15 13:22
Kazukiさん、アドバイスありがとうございます。
引用:

引用:


それと、元々ここのスレの本題であったファイルのサンプルが届いたので貼り付けます。
できれば、このソースコードの率直なご意見を聞きたいですね。


届いたんですか??
dejavuさんが書かれたのではなくて?


以前に書いた記憶があるのですが、今Javaの通信講座を受講しています。そこの練習課題だったんですね。
それで、本来ならば私だけの力でプログラムを作成しなければいけなかったものです。
でも、力不足という言葉で片付けていいのかどうかは迷いますが、全然思い浮かばなかったのでここの掲示板でヒントを頂ければ、と思って書き込みました。
当然、いきなり初っ端から『解答サンプルを下さい』とは言えなかったもので、後はヒント+自分の能力でできないか、と思った次第です。
何かマズかったですかね。
ここの掲示板を利用したのは事実です。
それから、ヒントやサンプルコードを書いてもらったりして頑張ったつもりです。
というか、ここの人のお力無くしては何も進まなかったんですね。
『wあいう』の時点から「w」と「r」を調べて一致したら書き込み、読み取りを指示するというところまでですね。
誠にお恥ずかしい限りです。本当は私自身だけの力で作成しなくてはいけなかったのですが、それができなかった事にただただ悔しさと情けなさを実感しています。
引用:

1.TODOコメントは消したほうがいいです


そうなんですか。
自分としては、TODOコメントが書かれる事が良い事だと今まで思ってきたのですが、違うんでしょうか。
引用:

2.私の場合はSystem.exitするならreturnでmainを抜けます


まず、それはぴあちゃんさんの例外をスローするのとも違いますよね。
returnなんですか。breakでも無いのですね。
もしかしたら、知識の無さをひけらかしていますか。
引用:

3.「// 書き込み」の後のforループでの配列のコピーは
  System.arrayCopyを使うほうがいいかも


今APIドキュメントでarrauCopy()メソッドを調べましたが、小難しい事がズラズラと書かれてて良く分かりませんでした。

ここの事ですよね。
コード:
output[i] = args[i+1];


率直な意見として、ここまで複雑化する必要性があるのでしょうか。
何かExceptionも出てくるので、こちらの方がスッキリして面倒くさくないような気がするのですが、私の言っている事は間違っているでしょうか。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2009-04-15 13:25
引用:

HTMLで書いてあるサイトがあるのですか。
もしかしてこのサイトの事ですかね。
もしビンゴなら自分も何が書いてあるのか意味不明です。
ここからも続きですけど、やっぱり1度自分の目で本の内容を確認する必要性があると思います。
完璧お手上げです、ハイ。


この手の文書は、読んで学ぶ為のものではなく、
単に仕様を網羅しただけのものですから、
人の理解度を高めつつ・・・というようなテーマは一切有りません。
だから学習に向くはずもなく、
一定のレベルがないと意味不明になるのは仕方がありません。

引用:

1つお訊きしたいのは、本に書いてある内容が意味不明なのでしょうか。
何を書いているのか理解できない、という事でしょうか。
それともIT業界の専門用語だらけ、とか。


大体どれもあてはまるかと。勉強せずにわかる人なんていません。
dejavu
ベテラン
会議室デビュー日: 2009/03/13
投稿数: 71
投稿日時: 2009-04-15 15:46
引用:

はっきりと言われていないようなので単刀直入に書きますが、
・Java言語仕様 第3版
・プログラミング言語Java
・マスタリングJavaEE5
これらを現在のdejavuさんが読破することは無理です。

・Javaチュートリアル 第4版
これに関しても、相当な覚悟がないと初学者がやるには厳しい本です。
理由は厚いこと、邦訳であることです。
初学者は、薄く、読みやすく、サンプルが多く、でもデタラメは書いていない本が望ましいでしょう。

まずは、敷居の低い入門本を1冊終わった後にチャレンジした方が良いです。
最近では、
・解きながら学ぶJava 入門編
が立ち読みした感じでは良いと思います。


まず一言。
わたなべさんに対して私は何の悪意ももっていません。
自分も多分同じ本を立ち読みで見ました。
確かに、わたなべさんの目に狂いは無いと思います。
いい本だと私も思います。
でもですね。
今Eclipseを使ってのJavaの勉強をしているので、Java5以降の新機能の出現にあたふたしていますが、似ている本は幾らか持っています。
『だったら、まずそれをやれよ』と思われるかもしれません。
今の自分の目の前の目標はEclipseでWebアプリケーションを作成したい、というものです。
そこには、Tomcat6.0やMySQLが絡むかもしれませんが、やろうとしている事の根本の部分は恐らく、Java5以前の事だと思います。
段階を自分なりに踏んできているつもりです。
ある掲示板では色々と書かれていますが、私は1から10へいきなり行こうとはしてはいません。
1、2、3、と順々に進めていると思っています。
質問の内容がいけないのでしょうかね。
どうしても、Eclipseを使用するとなると、今の本になってしまいます。
だから、当然知らない新機能が出てきてしまい、それについて質問しているのが傍から見ると、『もっと基本から』という風に映ってしまうのではないか、と感じています。
引用:

とにかく他人の話を聞く事も重要ですが、他人の書いたコードを読まなければダメです。
言語仕様だけ読んでもコードは書けるようになりません。
変数とか配列とかループとかオブジェクトとか基礎的な部分で詰まった場合は、
・なぜプログラミングができないのか―イメージとパターンで学ぶJavaプログラミング
がおススメです。
以前、新人研修をやった事がありますが、非常に出来の悪い人が数名いました。
その中でもこの本をちゃんと読んだ人は気付けば普通にコードが書けるレベルになっています。


私のやり方が間違っているとわたなべさんは思っているのではないか、と思います。
先ほどの掲示板で、自分のやり方が理に適っていないと散々に叩かれてましたからね。
多分、私はその非常に出来の悪い新人に見えるのでしょうね。
我を通して他人の忠告には全く耳を傾けない、と批判されていますしね。
他人のアドバイスは聞いていると思っています。
例えば、ハンドルネームを挙げさせてもらえば、Kazukiさん、デューンさん、かつのりさん、satomiさんなど等、もちろん、そこにはわたなべさんも含まれていると私は思っています。
なので、わたなべさんのアドバイスを参考にして、こうする事にしました。
先ほど列挙した4冊の本を私は購入したい、と思っています。
でも、何が書いてあるのかが分からない場合、知り合いにプログラマはいませんし、本は無駄になってしまいます。
それに費やしたお金もパーですね。
そこで、考えました。
普通はAmazon.co.jpで購入するところを今回は書店に取り寄せてもらい、その中身を見させてもらってから私がやれると納得がいった場合は購入する。
全然訳分からなければ、そこで買うのを断念するという方法です。
私自身ジェネリクスを含めて新しい機能についても知りたいですしね。
これでいかがなものでしょうか。


スキルアップ/キャリアアップ(JOB@IT)