생 바이트 스트림을 사용하여 내 컨퍼런스 채팅 응용 프로그램에서 TCP 파일 전송을 구현하기 위해 객체 스트림을 통해 전송할 파일을 훨씬 쉽게 전송할 수 있다고 판단했습니다. 파일은 메모리 내 File 객체로 대상 (중앙 서버 또는 다운로드 클라이언트)에 전송되고 저장됩니다. 그러나 이러한 파일은 File 객체로만 사용됩니다. 클라이언트가 파일을 열 수 있어야합니다. Java에서 File 객체를 하드 디스크 파일로 저장하거나 Java를 통해 파일 객체를 여는 방법이 있습니까?Java 저장/열기 파일 객체
답변
"파일 개체"는 무엇을 의미합니까? java.io.File
을 의미합니까?
클래스 java.io.File
은 단지 디렉토리 이름과 파일 이름을 나타냅니다. 그것은 파일의 내용을 담을 수있는 객체가 아닙니다.
당신은 예를 들어 메모리의 byte 배열은, 다음 네, 당신이 파일이 저장할 수있는 데이터가있는 경우 :
byte[] data = ...;
OutputStream out = new FileOutputStream(new File("C:\\someplace\\filename.dat"));
out.write(data);
out.close();
읽고 쓰는 방법을 배우고 오라클의 자바 튜토리얼에서 Basic I/O Lesson를 참조하십시오 파일은 FileInputStream
및 FileOutputStream
입니다. Data Handlers
당신은 Data Sources
로하지만 당신에게 "투명"방식으로 파일을 전송하는 데 사용할 수 있습니다에
당신이 보일 것입니다.
감사합니다, 앞으로 그들을 보게 될 것입니다. –
나는 내가 객체 스트림을 통해 전송 원하는 파일을 보낼 훨씬 쉽게 결정했다 "
그것은 나쁜 생각이 아니다는 :.. 메모리 대기 시간 (즉, 시간과 공간을) 비용 . 파일 이름과 파일 크기를 알려주는 바이트를 보내고 받는다.
PrintWriter를 사용하여 파일 이름을 먼저 보내려고했습니다. 그 다음 BufferedOutputStream을 사용하여 미가공 바이트를 가져온다. 파일 이름과 바이트는 보낸 사람 측에서 문제없이 보낼 것입니다. 수신 측에서도 파일 이름을받을 수는 있지만 원시 바이트를 수신 할 수는 없습니다. 단지 빈 파일을 만들었습니다. 객체 스트림을 사용하도록 전환하면 작동하는 것 같았습니까? –
@RichardStokes 작동하지 않을 것입니다. 연결 수명 동안 양쪽에서 동일한 스트림을 사용하십시오. PrintWriter에는 버퍼가 있고, BufferedOutputStream에는 버퍼가 있고, BufferedReader에는 버퍼가 있고, BufferedInputStream에는 버퍼가 있습니다. 전선에서 일관성을 유지할 버퍼가 너무 많습니다. writeUTF()/readUTF(), writeLong()/readLong() 및 write() 및 read()를 사용하여 파일 이름을 보내는 모든 것에 대해 DataOutputStream/DataInputStream을 사용합니다. – EJP
와우 감사합니다. 훌륭하게 철저한 설명입니다. –
- 1. Java. 객체
- 2. 효율적인 Java 객체 그래프 직렬화
- 3. Java 네트워크 객체 직렬화
- 4. jsp에서 java 객체 사용
- 5. Java 및 객체 직렬화
- 6. mws가있는 java 객체 생성
- 7. ArrayList의 Java Sorting 객체
- 8. java PrintWriter로 객체 캐스팅
- 9. Java 객체 복제
- 10. Java 도메인 객체
- 11. Java VM 객체 참조
- 12. Java MultiThreading 객체
- 13. java 모양 객체 이동
- 14. Java 프로세스간에 객체 공유
- 15. 객체 생성 JAVA
- 16. Java OOP : 객체 트리/객체 패밀리 구성
- 17. 다른 객체 클래스의 Java arraylist
- 18. Java 객체 참조 및 Java 메소드
- 19. castor를 사용하여 xml에서 java 객체
- 20. 장고, 파일 객체
- 21. 헤더 가드가있는 객체 파일
- 22. Java 파일
- 23. Java 문자열에서 메모리에 File 객체 만들기
- 24. Java 객체 메소드가 작동하지 않습니다.
- 25. Java : MouseListener 및 반환 객체
- 26. Struts 드롭 다운이있는 Java 객체
- 27. 객체 직렬화 란 무엇입니까? (Java)
- 28. Json to java 객체 안드로이드?
- 29. GSON.fromJson 중첩 된 Java 객체
- 30. Java - 객체 컬렉션을 친숙하게 만들기
java.io.File이 파일 내용을 저장할 수 없다는 것을 알지 못했다. board so :( –