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 として開く必要があります。