DataStream을 사용하여 여러 파일을 보내면됩니다. 파일의 이름과 파일의 바이트를 보내서이 작업을 수행합니다. 나는 파일의 미정 된 숫자를 보내야합니다. 다음은 DataOutputStream
코드입니다.DataInputStream에서 여러 바이트 [] 읽는 중
out.writeUTF(path);
out.write(Files.readAllBytes(file.toPath()));
각 파일을 전송해야합니다. 하지만 DataInputStream
을 올바르게 읽는 법을 모르겠습니다. 이것은 내가 지금까지 가지고있는 것이다.
while (in.available() != 0) {
String path = in.readUTF();
byte bytes = in.readByte();
}
분명히 1 바이트를 읽으므로 작동하지 않을 것입니다. 그러나 모든 바이트를 읽는 방법을 모르겠습니다. 여러 파일이 전송되기 때문에 available()
은 모든 파일의 끝을 읽을 때만 0과 같을 것이라고 생각합니다. 어떤 도움이라도 대단히 감사합니다.
내가 언급 한 것을 완전히 잊어 버렸습니다. 메모리가 부족하여 큰 파일을 보낼 수 있기를 원하며, 이것이 작동하지 않을 것이라고 생각합니다. 내가 버퍼를 사용해야 할 것 같아요,하지만 어떤 클래스가 파일을 지원하는지 모르겠습니다.
왜 각 바이트를 작성 별도로 대신 한 번에 전체 바이트 배열을 쓰고있다? –
@JonSkeet 특별한 이유가 없습니다. 그렇게하는 것이 낫겠습니까? – Stripies
어떻게 DataInputStream을 초기화 했습니까? init이 맞는지 확실합니까? 당신은 단계를 밟아서 한 번만 읽고 독신이라고 결정 했습니까? 읽은 내용이 파일의 내용입니까? 아니면 init이 올바르지 않아서 아무것도 읽지 않으십니까? – Churk