Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。
Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。
Q&A
2回答
8825閲覧
総合スコア15
0グッド
0クリップ
投稿2015/04/23 13:01
0
ソースファイル内に格納されてあるcsvファイルを読み込み、文字列として出力したいのですが、ファイルの読み込み方やファイルの指定の方法がわからず困っております。ご指導ご鞭撻の程よろしくお願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答2件
方法論としては大きく分けて
という2通りあります。
Javaのアプリをjarファイルに纏めて配布した場合、 そのCSVファイルがjarの中に一緒にまとめられて良いのであればClassLoaderがよく、 利用時にユーザーが差し替えたいのであればファイルシステムから読むということになります。
ClassLoaderからの読み込み方はargiusさんの記載の通りですね。 この方式はOSが違うケースでも非常に安定的に動くのでオススメです。
ファイルシステムから読み込む場合はcsvファイルのパスを元に Fileクラスを作って、FileInputStreamを作るというのが古典的な方法。
Java7以降だとjava.nio.file.Filesクラスを使うと簡易に読み込めます。
投稿2015/04/24 09:31
総合スコア87
クラスと同じパッケージにtest.csvがあると仮定した場合、こんな感じで取得できます。
test.csv
lang1// Java7以降の書き方 2 3// import文は省略 4 5try (InputStream is = getClass().getResourceAsStream("test.csv")) { 6 if (is == null) { 7 // リソースが取得できない場合 8 } 9 else { 10 // is.read() などを使って読み込む 11 } 12} catch (IOException e) { 13 e.printStackTrace(); 14}
lang
1// Java7以降の書き方 2 3// import文は省略 4 5try (InputStream is = getClass().getResourceAsStream("test.csv")) { 6 if (is == null) { 7 // リソースが取得できない場合 8 } 9 else { 10 // is.read() などを使って読み込む 11 } 12} catch (IOException e) { 13 e.printStackTrace(); 14}
staticメソッドの中で使うときは、このままでは使えません。getClass()のところを、そのクラス名+.classにします。
getClass()
.class
java.io.Fileとして取得しようとすると、jarファイルやwarファイルの状態で取得できなくなってしまうので注意してください。
java.io.File
投稿2015/04/23 13:58
総合スコア9394
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
まだベストアンサーが選ばれていません
アカウントをお持ちの方はログイン
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.36%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
【java】ソースフォルダ内にあるcsvファイルの取り扱いについて
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。