Java Fileクラスの詳細とIOの紹介と使用
1404 ワード
私はCPUです:この世界は遅いです!死ね!ああ!CPU、メモリ、ハードディスクの速度比較が感じられます.
ファイルの本質
OS(オペレーティングシステム)の目的は、上位プログラムがどのディスク内のファイル(バイトストリーム)も統一的に入手できるようにすることです.すべてのファイルの本質:バイトストリーム テキストファイル(txt,コード,htmlなど) バイナリ プログラムごとに解釈ファイルのバイトフローを担当する すなわち、ファイル自体はバイトストリームであり、画像、オーディオ、テキストなどにかかわらず、ファイルの表示形式は、プレーヤーがmp 3ファイルを解析できるなど、どのようなソフトウェアで開くかに依存するが、本質的にはこのファイルはバイトストリームである.
ファイルとIO
プログラムとファイル間の双方向ストリームの読み出しと出力は,ネットワーク接続時に機器からリモートホストへの双方向の読み出し出力ストリームとよく似ているため,Javaはこのストリームに対してInputStreamとOutputStreamを抽象化している.
InputStream/OutputStream抽象的な入出力ストリーム: ファイルからバイトストリームを読み込む ネットワークからバイトストリームを読み出す バイトストリームをどこからでも読み込む
入力も出力もプログラム基準で判定されます
ファイルの読み込みには、絶対パスを使用することを常に推奨します.
JavaのFileクラスFileは「ファイル」ではなく「パス」のみ 抽象的な「ファイル」パス:ファイルでもフォルダでもOK Fileの一般的な方法 絶対パスと相対パスの相対パスは、JVMの現在の作業ディレクトリであり、絶対パスの使用は常に推奨される. 読み書きファイル NIO NIOはJava 7以降に導入されたもので、1.new IO 2.Non-blocking IO非ブロックIO NIOの中のPathは実は旧版のFileで、toFileで変換できる NIOのFilesツール類、walkFileTreeなどの方法を提供している NIOが解決した問題は,旧版のストリーム読み出しに対して,バイトストリームの形式で伝送されるため,1バイト1バイトの読み書きが行われ,割り込みができないなど,速度が遅いことである.NIOはブロックごとの読み書きに変更され、中間ブロックやブロックにも順番がなく、旧版IOよりも速い.
IO遅すぎる解決方法
BufferedReader/BufferedWriterの使用
車輪を繰り返す必要はありません
FileUtils
IOutils
ファイルの本質
OS(オペレーティングシステム)の目的は、上位プログラムがどのディスク内のファイル(バイトストリーム)も統一的に入手できるようにすることです.すべてのファイルの本質:
ファイルとIO
プログラムとファイル間の双方向ストリームの読み出しと出力は,ネットワーク接続時に機器からリモートホストへの双方向の読み出し出力ストリームとよく似ているため,Javaはこのストリームに対してInputStreamとOutputStreamを抽象化している.
InputStream/OutputStream
入力も出力もプログラム基準で判定されます
ファイルの読み込みには、絶対パスを使用することを常に推奨します.
JavaのFileクラス
isFile()
isDirectory()
exists()
getAbsolutePath()
・などIO遅すぎる解決方法
BufferedReader/BufferedWriterの使用
車輪を繰り返す必要はありません
FileUtils
IOutils