2011-04-28 3 views
1

fileinput 리더와 buffer 리더를 사용하여 자바로 클라이언트 서버 소켓 프로그래밍을하고 있습니다. 그러나 버퍼 판독기에는 read 또는 readline 메서드가 있습니다. 여기서 한 줄만 읽을 수 있습니다.Java에서 비디오 및 이미지 파일을 동시에 보내는 방법은 무엇입니까?

버퍼를 사용하여 한 번에 전체 내용을 읽을 수 있습니까? 어떤 함수가 적합합니까? 아니면 어떤 클래스를 사용할 수 있습니까? 비디오와 이미지 파일을 모두 보내고 싶습니다.이 파일을 보내는 방법은 무엇입니까?

답변

1

비디오 또는 이미지 데이터를 읽는 경우 텍스트 데이터 용으로 Reader 클래스를 사용하지 않아야합니다.

이진 데이터의 경우 반환 값에주의하여 루프에서 사용해야하는 FileInputStream 및 해당 read() 메서드를 사용해야합니다.

또는 Apache Commons IO의 FileUtils.readFileToByteArray()과 같이 이미 구현 한 라이브러리를 사용하십시오.

+0

마이클 전체 정보를 사용하여 주셔서 감사합니다. 전체 정보 .. 내가 한 가지 더 .. 문제가 .. 그걸 해결하려고 할 수 있습니다 ... 27kb 이미지 파일을 보내고 있습니다.하지만 서버 끝에서 동일한 얻을 수 없습니다. size file..i는 서버 측에서 파일을 얻지 만 열 수는 있습니다 .. 내 coe는 그냥 통과합니다 .. – rajesh

+0

클라이언트 코드 .. FileInputStream fstream = new FileInputStream ("Blue hills.jpg"); DataInputStream = 새로운 DataInputStream (fstream); byte [] buffer = 새 바이트 [1000]; int 바이트 = 0; while (bytes = fstream.read (buffer))! = -1) { \t output.write (buffer, 0, bytes); // wher 출력은 서버 소켓에 연결된 변수입니다. } – rajesh

+0

@rajesh : 코드가 정상적으로 보입니다. 루프 이후에 출력 스트림을 닫습니까? BTW, 제가 링크 된 Apache Commons 클래스에는 스트림간에 복사하는 메소드도 있습니다. –

관련 문제