java二进制文件读写

在Java中,二进制文件读写涉及使用Input/OutputStream或Reader/Writer类的派生类。以下是一些常用的二进制文件读写操作:

1. 读取二进制文件:

   try (FileInputStream fileInput = new FileInputStream("input.bin")) {
       byte[] buffer = new byte[4096]; // 缓冲区大小
       int bytesRead; // 已读取的字节数
       while ((bytesRead = fileInput.read(buffer)) != -1) {
           // 对缓冲区中的数据进行处理
       }
   } catch (IOException e) {
       e.printStackTrace();
   }
   

2. 写入二进制文件:

   try (FileOutputStream fileOutput = new FileOutputStream("output.bin")) {
       byte[] data = {0x01, 0x02, 0x03}; // 要写入的二进制数据
       fileOutput.write(data);
   } catch (IOException e) {
       e.printStackTrace();
   }
   

3. 使用DataInputStream和DataOutputStream读写基本数据类型和字符串:

   try (DataInputStream dataInput = new DataInputStream(new FileInputStream("input.bin"))) {
       int intValue = dataInput.readInt(); // 读取整数
       double doubleValue = dataInput.readDouble(); // 读取浮点数
       String stringValue = dataInput.readUTF(); // 读取字符串
   } catch (IOException e) {
       e.printStackTrace();
   }

   try (DataOutputStream dataOutput = new DataOutputStream(new FileOutputStream("output.bin"))) {
       int intValue = 42;
       double doubleValue = 3.14;
       String stringValue = "Hello";
       dataOutput.writeInt(intValue); // 写入整数
       dataOutput.writeDouble(doubleValue); // 写入浮点数
       dataOutput.writeUTF(stringValue); // 写入字符串
   } catch (IOException e) {
       e.printStackTrace();
   }
   

4. 使用RandomAccessFile进行随机访问:

   try (RandomAccessFile file = new RandomAccessFile("data.bin", "rw")) {
       long position = 10; // 要读写的位置
       file.seek(position); // 将文件指针移动到指定位置
       int value = file.readInt(); // 读取整数
       file.seek(position); // 再次将文件指针移动到指定位置
       file.writeInt(value + 1); // 将新值写入文件
   } catch (IOException e) {
       e.printStackTrace();
   }
   

这些例子是常见的二进制文件读写操作。你可以根据实际需求选择合适的读写方式。

你可能感兴趣的