cuốn sách gpt4 ai đã làm

java - inputStream lớp mới mở rộng inputStream

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 08:41:58 29 4
mua khóa gpt4 Nike

Tôi đã tạo một lớp mới mở rộng inputStream và phải @Override read(). Tôi đang cố gắng sử dụng phương thức read(int b) nhưng khi tôi sử dụng nó, nó chuyển sang phương thức read() và tôi không thể sử dụng các tham số tôi truyền.

Đây là mã của tôi:

lớp công khai Chạy {

public static void main(String[] args) {

DFSMaze3dGenerator mg = DFSMaze3dGenerator mới();
thử {
Maze3d maze3d = mg.generate(1, 5, 5);
mê cung3d.print3DMaze();
OutputStream out = MyCompressorOutputStream mới(
FileOutputStream mới("1.maz"));
out.write(maze3d.toByteArray());
byte[] arr = maze3d.toByteArray();
System.out.println("");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + ",");
}
out.close();
inputStream in = new MyDecompressorInputStream(new FileInputStream(
"1.maz"));
byte b[] = byte mới[maze3d.toByteArray().length];
in.read(b);
in.close();
Đã tải Maze3d = Maze3d mới (b);
System.out.println(loaded.equals(maze3d));

} catch (Exception e) {
// TODO Khối bắt được tạo tự động
e.printStackTrace();
}

}

}

Cách sử dụng tham số khi sử dụng phương thức: read(b);???

lớp công khai MyDecompressorInputStream mở rộng inputStream {

Luồng đầu vào vào;
số int;
boolean thậm chí = sai;

công khai MyDecompressorInputStream(InputStream in) {
super();
this.in = trong;
}

@Ghi đè
public int read() ném IOException {

trả lại 100;

}



}

câu trả lời hay nhất

Bạn có cần phân lớp inputStream không? Không có mã nào trong mã chính của bạn tận dụng được bất kỳ mã nào được thêm vào trong quá trình triển khai của bạn. Tuy nhiên, bạn nên triển khai read(byte[]) trong quá trình triển khai của mình. Đây là một triển khai tương tự đang chạy trên máy của tôi.

lớp MyInputStream mở rộng inputStream {
Luồng đầu vào vào;
số int;
boolean thậm chí = sai;

công khai MyInputStream(luồng inputStream){
this.in = luồng;
}

@Ghi đè
public int read() ném IOException {
trả lại this.in.read();
}

@Ghi đè
public int read(byte[] toStore) ném IOException {
trả lại this.in.read(toStore);
}
}

Sử dụng nó tương tự như chính của tôi:

public static void main(String[] args){
Luồng MyInputStream = MyInputStream mới (ByteArrayInputStream mới (byte mới [] {0, 0, 1}));
lưu trữ byte[] = byte mới[3];
thử {
Stream.read(lưu trữ);
for (int i = 0; i < storage.length; ++i){
System.out.println(lưu trữ[i]); //0 0 1
}

} catch (IOException e) {
e.printStackTrace();
}
luồng.close()

}

关于java - inputStream 扩展 InputStream 的新类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32442435/

29 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress