身体がだるだるですわ。
先週の金曜に肉離れして爺っす。
ソース書くので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の入出力かなー。