Java Fileクラスの詳細とIOの紹介と使用

1404 ワード

私はCPUです:この世界は遅いです!死ね!ああ!CPU、メモリ、ハードディスクの速度比較が感じられます.
ファイルの本質
OS(オペレーティングシステム)の目的は、上位プログラムがどのディスク内のファイル(バイトストリーム)も統一的に入手できるようにすることです.すべてのファイルの本質:
  • バイトストリーム
  • テキストファイル(txt,コード,htmlなど)
  • バイナリ
  • プログラムごとに解釈ファイルのバイトフローを担当する
  • すなわち、ファイル自体はバイトストリームであり、画像、オーディオ、テキストなどにかかわらず、ファイルの表示形式は、プレーヤーがmp 3ファイルを解析できるなど、どのようなソフトウェアで開くかに依存するが、本質的にはこのファイルはバイトストリームである.
    ファイルとIO
    プログラムとファイル間の双方向ストリームの読み出しと出力は,ネットワーク接続時に機器からリモートホストへの双方向の読み出し出力ストリームとよく似ているため,Javaはこのストリームに対してInputStreamとOutputStreamを抽象化している.
    InputStream/OutputStream
  • 抽象的な入出力ストリーム:
  • ファイルからバイトストリームを読み込む
  • ネットワークからバイトストリームを読み出す
  • バイトストリームをどこからでも読み込む

  • 入力も出力もプログラム基準で判定されます
    ファイルの読み込みには、絶対パスを使用することを常に推奨します.
    JavaのFileクラス
  • Fileは「ファイル」ではなく「パス」のみ
  • 抽象的な「ファイル」パス:ファイルでもフォルダでもOK
  • Fileの一般的な方法isFile()isDirectory()exists()getAbsolutePath()・など
  • 絶対パスと相対パスの相対パスは、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