0

Java で USB フラッシュを RandomAccessFile として開くと、seek、length、および setLength メソッドで問題が発生します。コードの小さな例:

    try {
        RandomAccessFile raf = new RandomAccessFile("\\\\.\\G:", "r");
        raf.seek(10);
        raf.setLength((long) 0);
        System.out.println(raf.length());
    }
    catch (FileNotFoundException ex) {
        Logger.getLogger(NewClass.class.getName()).log(Level.SEVERE, null, ex);
    }
    catch (IOException ex) {
        Logger.getLogger(NewClass.class.getName()).log(Level.SEVERE, null, ex);
    }

または別の問題があります。このコードは FileNotFoundException をスローしますが、Windows でこのパスを開いてファイルを表示できます。

    try {
        File file = new File("G:\\");
        RandomAccessFile raf = new RandomAccessFile(file, "r");
    }
    catch (FileNotFoundException ex) {
        Logger.getLogger(NewClass.class.getName()).log(Level.SEVERE, null, ex);
    }
    catch (IOException ex) {
        Logger.getLogger(NewClass.class.getName()).log(Level.SEVERE, null, ex);
    }

この問題を解決するにはどうすればよいですか? Fat32-lib を使用して動作させるには、フラッシュ デバイスを RandomAccessFile として開く必要があります。

4

2 に答える 2