Java의 InputStream에서 파일 경로/이름을 얻는 방법은 무엇입니까?InputStream의 파일 경로/이름
9
A
답변
10
불가능합니다. (Java API의 FileInputStream에서 가져온 것이 아님) FileInputStream
생성자는 모든 필드에이 정보를 저장하지 않습니다 추상화와 캡슐화 :
public FileInputStream(File file) throws FileNotFoundException {
String name = (file != null ? file.getPath() : null);
SecurityManager security = System.getSecurityManager();
if (security != null) {
security.checkRead(name);
}
if (name == null) {
throw new NullPointerException();
}
fd = new FileDescriptor();
open(name);
}
9
InputStream
이 파일이나 경로가 아니기 때문에 할 수 없습니다. 즉시 데이터를 생성하는 InputStream
을 구현할 수 있습니다.
0
두 가지 중요한 객체 지향 설계 원칙은 당신이 요구하는지하는 일에서 당신을 방지 할 수 있습니다.
- 추상화 특정 상황에서의 사용 (자세한 here) 만 필요한 세부 정보가 일반적인 개념을 정의하는 과정이다. 이 상황에서 추상화는
InputStream
이며, 해당 바이트의 원본과 관계없이 바이트를 제공 할 수있는 일반 인터페이스입니다..InputStream
의 추상화에는 파일 경로 개념이 없습니다. 이는InputStream
의 특정 구현에만 관련이 있습니다. - 캡슐화은 해당 클래스의 소비자/사용자로부터 클래스의 구현 세부 사항을 숨기는 프로세스입니다. 이 특정 상황에서
FileInputStream
은 해당 정보가 용도와 관련이 없으므로InputStream
이므로 읽는 파일의 세부 정보를 캡슐화합니다.path
인스턴스 필드는 이며 캡슐화 된이므로 클래스 사용자는 사용할 수 없습니다.
는 몇 가지 중요한 제한을 수용하고자하는 경우 가 path
변수에 액세스 가능하다,라고 말했다 가졌어요. 기본적으로 InputStream
이 실제로 FileInputStream
의 인스턴스인지 확인하고, 그렇다면 반사를 사용하여 path
인스턴스 필드를 읽을 수 있는지 여부를 확인할 수 있습니다. 나는 그 접근을하기위한 세부 사항을 생략 할 것이다. 왜냐하면 대부분의 상황에서 자바 문서와 온라인을 쉽게 발견 할 수 있기 때문이다. 그 질문은 왜 그런지에 대한 맥락을 제공하지 않기 때문에 더 이상 합리적인 접근법을 제시하기가 어렵습니다.
관련 문제
- 1. Reader와 InputStream의 차이점은 무엇입니까?
- 2. InputStream의 텍스트 읽기
- 3. InputStream의 헤더 질문 읽기
- 4. Java에서 InputStream의 시작과 끝 부분에 문자 추가
- 5. android의 데이터 연결성 : InputStream의`available`이 다른 값을 반환합니다.
- 6. InputStream의 read() 함수에 대해 시간 초과를 설정할 수 있습니까?
- 7. 파이썬이 Java InputStream의 사용 가능한 메소드와 동일한 것은 무엇입니까?
- 8. 재생! + GAE + 파일 업로드
- 9. HttpListener는 jQuery.ajax()를 사용할 때 InputStream의 처음 900 바이트 만 가져옵니다.
- 10. FindBugs : "스트림을 닫을 수 없습니다"- InputStream의 경우 유효합니까? 내 자바 코드에서
- 11. 파일 업로드 파일
- 12. 파일 기초 파일
- 13. vimrc 파일, viminfo 파일
- 14. 파일 작업 예외 파일
- 15. 사용자 파일 업로드 파일
- 16. 파일 시스템에 파일 저장
- 17. 플러그인 파일 열기 파일
- 18. 파일 서버에 파일 업로드
- 19. 파일
- 20. 파일 : //
- 21. 파일
- 22. 파일
- 23. 파일 내용에 기반한 파일 이름
- 24. 하위 파일 alfresco의 파일 연결
- 25. UNIX라는 이름의 파일 끝 파일
- 26. 파일 공유가없는 원격 파일 읽기
- 27. 분산 파일 시스템에서 파일 순회
- 28. 파일 찾아보기에 파일 크기를 얻으십시오
- 29. 파일 대 데이터베이스의 파일 경로
- 30. 파일 읽기 : feof() 이진 파일