원격 서버 또는 로컬 디스크에서 파일을 검색하는 코드가 있습니다.FileInputStream과 URLConnection을 사용하여 파일 읽기
나는 URLConnection
두 경우 모두를 처리 할 수 있음을 이해하고, 그래서 디스크에서 읽을 수있는 로컬 파일을 읽기보다는 URLConnection
에 전원을 전달하는 FileInputStream
을 사용하는 경우 어떤 성능 이점이 있다면 궁금 해서요?
원격 서버 또는 로컬 디스크에서 파일을 검색하는 코드가 있습니다.FileInputStream과 URLConnection을 사용하여 파일 읽기
나는 URLConnection
두 경우 모두를 처리 할 수 있음을 이해하고, 그래서 디스크에서 읽을 수있는 로컬 파일을 읽기보다는 URLConnection
에 전원을 전달하는 FileInputStream
을 사용하는 경우 어떤 성능 이점이 있다면 궁금 해서요?
아니요, URLConnection
개를 초과하여 사용하면 성능상의 이점이 없습니다 (몇 가지 추가 메소드 호출의 밀리 초를 계산하지 않는 한).
file://
URL을 통해 파일을 읽는 것은 결국 당신에게 가져 FileURLConnection
(이 공식 자바 라이브러리 스펙, 단지 일 기반의 JRE의 일부가 아닌 참고). 코드를 보면 디스크에있는 파일로 작업 할 수있는 코드가 FileInputStream
임을 알 수 있습니다. 따라서 스택에서 몇 개의 레이어를 더 아래로 걷는 것 외에도 코드는 완전히 똑같이 끝납니다.
FileInputStream
을 직접 사용하려는 이유는 코드의 명확성 때문입니다. 파일 경로를 URL로 바꾸는 것은 약간 못 생기며 파일을 가지고 만 작업하는 경우 혼란을 겪을 수 있습니다. 필요이 URL을 사용하여 시간의 일부를 작업 할 수 귀하의 경우에는
는, 당신이 파일의 URL 및 URL과 만 작업을 사용할 수있는 매우 편리합니다. 나는 당신이 거의 모든 흥미로운 논리를 추상화하여 URL을 작업했으며 파일 또는 비 파일 URL을 다른 곳에서 구성하는 추한 사업을 할 수 있다고 상상합니다.
FileInputStream은 파일 시스템의 파일에서 입력 바이트를 가져옵니다. FileInputStream는, 이미지 데이터 등의 생의 바이트의 스트림을 읽어 들이기 위해서 (때문에) 사용됩니다.
FileReader는 문자 스트림을 읽는 데 사용됩니다. 접속 대상물이 URL에 대해서 openConnection 메소드를 호출함으로써 생성
나는 가장 효율적인 상태를 유지하기 위해 가능한 가장 간단한 코드 (객체)를 사용하는 것이 좋습니다. 미니멀리즘을 생각해라!
P. 파일을 이동하거나 내용을 읽는 지 확실하지 않습니다.
미니멀리스트 아이디어에 동의합니다. 문제는 스택 위로 자원을 선택하여 스택 아래로 리소스 유형에 대한 일부 메타 정보를 전달하는 것이 아니라 URL로 변경하고 스택에서 코드로 보내는 것이 더 간단하다는 것입니다. – user1941747
후드 아래에서 작동하는 방법에 대한 자세한 기술 답변을 보내 주셔서 감사합니다! 예, 모듈은 현재 URL을 허용하도록 설정되어 있으므로 파일이있는 위치를 알 필요가 없습니다. – user1941747