ファイル入出力 Nullの挿入
基本的にNULLを処理しようとするとNullPointerExceptionが発生してしまいます。
そのためNULLにならないように常に考慮しなければなりません。
今まで紹介したファイル入出力でNULLデータを書きこむとどうなるか、テストを行ってみました。
public void testNullWrite(){ String data = null; try{ SimpleFileInOut.write(makeOutFileName(),data); count++; }catch(NullPointerException e){ System.out.println("nullpo SimpleFileInOut"); } try{ BufferedFileInOut.write(makeOutFileName(),data); count++; }catch(NullPointerException e){ System.out.println("nullpo BufferedFileInOut"); } try{ StreamFileInOut.write(makeOutFileName(),data); count++; }catch(NullPointerException e){ System.out.println("nullpo StreamFileInOut"); } try{ BufferedStreamFileInOut.write(makeOutFileName(),data); count++; }catch(NullPointerException e){ System.out.println("nullpo BufferedStreamFileInOut"); } try{ FileUtils.write(new File(makeOutFileName()), data); }catch(NullPointerException e){ System.out.println("nullpo FileUtils"); }catch (IOException e) { e.printStackTrace(); } }
処理結果
nullpo SimpleFileInOut
nullpo BufferedFileInOut
nullpo StreamFileInOut
nullpo BufferedStreamFileInOut
testNullWrite: 3ms.
つまり、ApacheIOのFileUtilsでのみNULLデータを書きこんでもぬるぽが起きない。
ちなみに0Byteのファイルが作成されます。