ホームページ  >  記事  >  Java  >  Java でのファイル操作と IO ストリーム コンテンツの詳細な紹介

Java でのファイル操作と IO ストリーム コンテンツの詳細な紹介

不言
不言転載
2018-10-12 15:55:452825ブラウズ

この記事では、Java でのファイル操作と IO ストリームの内容について詳しく説明します。必要な方は参考にしていただければ幸いです。

序文

  1. ストリームの役割: データを永続的に保存します。

  2. IO ストリームは、デバイス間のデータ送信 (ファイルのアップロードとダウンロード) を処理するために使用されます。

  3. Java は、ストリームを通じてデータを操作します。

  4. ストリームの操作に使用される Java オブジェクトは IO パッケージに含まれています。

  5. Java IO システムの学習は、基本的にファイルの読み取りと書き込みです。

ファイルクラス

  1. ファイルは、通常のファイルであってもディレクトリであっても、Java でファイルを抽象化するために使用されます。ファイルオブジェクト。

  2. ファイルは、ディスク上のファイルまたはディレクトリの単なる抽象表現です。内部的には、実際にはプラットフォームに依存しないローカル ファイル システム クラスに依存します。

  3. ファイルは、それが表すファイルの内容に対して読み取りまたは書き込み操作を実行できません (これがストリームの機能です)。

  4. メンバーメソッド:

    (1)创建功能:
        【1】public boolean createNewFile()
        【2】public boolean mkdir()
        【3】public boolean mkdirs()
    (2)删除功能:public boolean delete()
    (3)重命名功能:public boolean renameTo(File dest)
    (4)判断功能:
        【1】public boolean isDirectory()
        【2】public boolean isFile()
        【3】public boolean exists()
        【4】public boolean canRead()
        【5】public boolean canWrite()
        【6】public boolean isHidden()
    (5)获取功能:
        【1】public String getAbsolutePath()
        【2】public String getPath()
        【3】public String getName()
        【4】public long length()
        【5】public long lastModified()
    (6)高级获取功能:
        【1】public String[] list()
        【2】public File[] listFiles()

フローの分類

  1. さまざまな要件に応じてさまざまなカテゴリに分類されます。データ フローの方向 入力ストリームと出力ストリーム。

  2. 処理されるデータの種類に応じて、バイト ストリームと文字ストリームに分割されます。

(1) 文字ストリーム:名前が示すとおり、このストリームは文字のみを処理できますが、文字は非常に高速に処理されます。
(2) バイトストリーム: ビット単位で格納されているすべてのファイルを処理できるため、すべてのファイルを処理できますが、文字の処理速度は文字ストリームほど速くありません。

  1. 文字ストリームの抽象基本クラス:

(1) リーダー: 文字入力ストリームの抽象クラス、すべて文字入力ストリームの実装はそのサブクラスです
(2)Writer: 文字出力ストリームの抽象クラス、すべての文字出力クラスの実装はそのサブクラス

  1. バイト ストリームの抽象基本クラス:

(1) InputStream: バイト入力ストリームの抽象クラス、すべてのバイト入力ストリームの親クラス
(2) OutputStream:バイト出力ストリームの抽象クラスは、バイト ストリームを出力するすべてのクラスのスーパークラスです。

  1. # 文字ストリーム Reader から派生したサブクラス:

    (1)CharArrayReader
    (2)BufferedReader/LineNumberReader
    (3)FilterReader
    (4)InputStreamReader/FileReader

  2. 文字ストリーム Writer 派生サブクラス:

    (1)BufferedWriter
    (2)CharArrayWriter
    (3)FilterWriter
    (4)OutputStreamWriter/FileWriter
    (5)PrintWriter
    (6)StringWriter

  3. バイト ストリーム InputStream 派生サブクラス :

    (1)FileInputStream
    (2)ObjectInputStream
    (3)FilterInputStream/BufferedInputStream/DataInputStream/PushbackInputStream
    (4)SequenceInputStream
    (5)ByteArrayInputStream
    (6)StringBufferInputStream)

  4. # バイト ストリーム OutputStream 派生クラス:

    (1)ByteArrayOutputStream
    (2)FileOutputStream
    (3)FilterOutputStream/BufferedOutputStream/DataOutputStream
    (4)ObjectOutputStream

  5. 読み取りと書き込みの最適化: バイト バッファ ストリーム

    バイト ストリームは、一度に 1 つの配列の読み取りと書き込みを行います。これは、一度に 1 バイトの読み取りと書き込みより明らかに高速です。これは配列を追加することによるバッファー効果です。
  1. ファイルのバイト入力ストリームを読み取る場合、同じバイト ストリームから直接読み取られます。
  2. バイト ストリームはハードウェア (記憶媒体) から読み取られるため、速度は遅くなります。
  3. CPU がデータを使用する必要がある場合、read() および read(byte[]) によるデータの読み取り時のハードウェア IO の速度が制限されます。
  4. CPU とメモリ間の読み取りおよび書き込み速度はハードウェア IO の 10 倍以上であるため、メモリ内でバッファの最適化を確立できます。
  5. 読み取りと書き込みを最適化するためのアイデア:
  6. (1) メモリ内にバッファを確立します
(2) まずバッファを配置しますストレージ メディア内 バイトはバッファに読み込まれます

(3) CPU がデータを必要とする場合、データはバッファから直接読み込まれます
(4) バッファは十分な大きさである必要があり、読み取られた後はバッファがいっぱいになります。 () 関数がトリガーされ、バッファから自動的に読み取られます。メディアのファイル バイト コンテンツからバイトが読み取られ、バッファ配列に格納されます。

変換ストリーム

    変換ストリームは、バイト ストリームから文字ストリームへのブリッジであり、バイト ストリームを文字ストリームに変換できます。
  1. 原則は、バイト ストリームに基づいてエンコードおよびデコード操作を追加することです。
  2. 文字ストリーム = バイト ストリーム エンコーディング テーブル
  3. FileReader と FileWriter は実際には下部にあるバイト ストリームですが、追加のエンコーディングで構成されています。デコーダの場合、最下層はバイトを使用してデータを読み取り、デコーダを通じて文字に変換するか、エンコーダを通じて文字をバイトに変換して出力します。

以上がJava でのファイル操作と IO ストリーム コンテンツの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。