RandomAccessFileの機能とアプリケーションシナリオ

RandomAccessFile

  1. RandomAccessFileはObjectクラスを直接継承し、DataInputおよびDataOutputインターフェイスを実装します
  2. 入力ストリームと出力ストリームの両方として使用できます
package com.ntt.sts;

import org.junit.Test;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

public class RandomAccessFileTest {
    
    

    @Test
    public void randomAccessFileTest() throws IOException {
    
    
        RandomAccessFile randomAccessFile = new RandomAccessFile(new File("test1.png"),"r");
        RandomAccessFile randomAccessFile1 = new RandomAccessFile(new File("三刀流索隆.jpg"),"rw");

        byte[] bytes = new byte[1024];
        int len;
        while((len = randomAccessFile.read(bytes)) != -1){
    
    
            randomAccessFile1.write(bytes,0,len);
        }
        randomAccessFile.close();;
        randomAccessFile1.close();
    }
}
  1. 特徴
  • パスを指定するときに、ファイルが存在しない場合は自動的に作成されます
  • ファイルにデータを繰り返し追加すると、データを追加する代わりに、元のデータが上書きされます(前から後ろに上書きされます)。
  • seek()メソッドを提供します。このメソッドは、ポインターを呼び出してファイル挿入操作を実装します。他のストリームは、append()メソッドを使用してファイルの末尾に追加するか、ファイルを直接上書きします。
  1. アプリケーションシナリオ、Resumable
    Thunderboltのダウンロード機能、ダウンロード前に2つの一時ファイルが作成されます。1つはダウンロードされたファイルと同じサイズの空のファイルで、もう1つはファイルポインタの場所を記録するファイルです。毎回一時停止し、前回のポインタを保存し、ブレークポイントでダウンロードすると前回の場所からダウンロードを継続し、ブレークポイントでダウンロードまたはアップロードする機能を実現します。

おすすめ

転載: blog.csdn.net/weixin_43941676/article/details/108431198