ファイル読み込み@Java

身体がだるだるですわ。
先週の金曜に肉離れして爺っす。

ソース書くのでyntaxHighlighter Evolved入れてみました。
リンク先の説明にもありますが、設定画面は日本語なので扱いやすいですねw
ひとまずソースを目立たせるためEmacsに変えました。
http://netaone.com/wp/syntaxhighlighter-evolved/

/***************************************
* ファイル読み込み+書き込み
**************************************/
package t2;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class T3 {
public static void main(String[] args) {
String path = "../test.txt";

try {
//ファイルオブジェクト生成
File file = new File(path);

//ファイルパスを表示
System.out.println(file.getPath());
System.out.println(file.getAbsolutePath());
System.out.println(file.getCanonicalPath());

//ファイル有無チェック
if(!file.exists()){
System.out.println("ファイルがありません");
System.exit(1);
}

String str;
//ファイルを開く
BufferedReader br = new BufferedReader(new FileReader(file));

//開いたファイルを読み終わるまで実行
while((str = br.readLine()) != null){
System.out.println(str);
}
//ストリームを閉じる
br.close();
} catch (FileNotFoundException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
} catch (IOException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
}
}

——–実行結果————————
..\test.txt
C:\workspace2\java2\..\test.txt
C:\workspace2\test.txt
test
a
b
—————————————–

とりあえず何が言いたいかだけ。
getCanonicalPathを使わないとfileオブジェクト自体は”相対パス”を認識してくれるが、
画面にパスを表示する際はString型pathに格納したものがそのまま表示されます。

・・・まぁ前提条件として、
現場では相対パスなんて使わないですけどね。

カレントパスor絶対パスになります。
絶対パスはローカルと本番で同じパスにファイルがおけるかが鍵ですね。

Antで読み込むファイルも一式にするならカレントパスじゃないと
プロジェクトでサーバ共有してる際はローカルで使わなそうなHドライブとかKドライブが割り当てられ
実行エラーになるので要注意です(静的コンテンツは別途上げたりしてますが)

#前の現場ではWeblogic(Tomcatに似て非なるもの)使うとAntでZip化したものをデプロイしてました。

http://www.atmarkit.co.jp/ait/articles/0301/16/news002.html

#今は糞古い機能だらけなので絶対パス使ってます。

次はCSVの入出力かなー。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>