RM-BLOG

IT系技術職のおっさんがIT技術とかライブとか日常とか雑多に語るブログです。* 本ブログに書かれている内容は個人の意見・感想であり、特定の組織に属するものではありません。/All opinions are my own.*

JAVAソースコードメモ(ファイル操作)

String CURRENT_DIR = new File(".").getAbsoluteFile().getParent(); 現在ディレクトリのフルパスを取得する String FILE_SEP = System.getProperty("file.separator"); パス区切り文字を取得する これはシステム依存なので、 Windowsならバックスラッシュ(\)だし、 UNIX系ならスラッシュ(/)を得ることができる。 String LINE_SEP = System.getProperty("line.separator"); 改行コードを取得する これはシステム依存なので、 WindowsならCRLFだし UNIX系ならLFを得ることができる。 File file = new File("test.txt"); BufferedReader br = null; br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8")); ファイルを読み込むための基本クラス BufferedReaderのインスタンスを作成する基本方法 テキストファイルの場合は ・br.readLine()で1行分を読み込める ・while(br.ready())でEOFに到達するまでいい感じにループ という操作で先頭から1行ずつ読み込んで処理していく方法が一般的だろう brはfinallyブロックでちゃんとnull検査してcloseすること BufferedReader br = null; try{ br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8")); while(br.ready()) { // 処理を記述 } } catch(Exception e) { e.printStackTrace(); } finally { if (br != null) { br.close(); } } 明示的にcloseを呼び出さなくても、 JAVAのプロセス完了時にBufferedReaderはcloseされるが、 closeしないまま大量のファイルを読み込むとエラーになる。(Exceptionが発生する) ちゃんとcloseしておいたほうが良い File file = new File("test.txt"); BufferedWriter bw = null; bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file),"UTF-8")); こっちは書き込み系。   bw.write("aaa"); でaaaをtest.txtに書き出す。 改行する場合はbw.writeln(); 追記で書き込みたい場合はFileOutputStreamのコンストラクタの第二引数をtrueにする   bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file,true),"UTF-8")); ---------------------------------------------------------------------- ↑のソースは(System.getProperty()を除いて) java.ioパッケージのクラスを使ってるので ソースコードの冒頭でjava.ioのimportが必要   import java.io.*; 本当は必要なクラスだけ並べるのがいいんだが 面倒なので個人的には毎回アスター