FileInputStream를 InputStream로 변환하는 방법? [닫은]
난 그냥를 변환 할 FileInputStream
에 InputStream
내가 그렇게 할 수있는 방법?
예 :
FileInputStream fis = new FileInputStream("c://filename");
InputStream is = ?;
fis.close();
일반적으로 먼저 입력 스트림에서 읽은 다음 닫습니다. FileInputStream을 다른 InputStream (또는 Reader)에 랩핑 할 수 있습니다. 랩핑 스트림 / 리더를 닫으면 자동으로 닫힙니다.
이것이 호출자에게 InputStream을 리턴하는 메소드 인 경우, 스트림이 끝나면 스트림을 닫는 것은 호출자의 책임입니다. 메소드에서 닫으면 호출자가 해당 메소드를 사용할 수 없습니다.
귀하의 의견 중 일부에 대답하려면 ...
InputStream 컨텐츠를 원격 소비자에게 보내려면 InputStream의 컨텐츠를 OutputStream에 쓴 다음 두 스트림을 모두 닫습니다.
원격 소비자는 사용자가 만든 스트림 객체에 대해 아무것도 모릅니다. 그는 컨텐츠를 수신하고 InputStream에서 컨텐츠를 수신하여 읽거나 닫습니다.
InputStream is;
try {
is = new FileInputStream("c://filename");
is.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return is;
InputStream is = new FileInputStream("c://filename");
return is;
FileInputStream 은 inputStream입니다.
FileInputStream fis = new FileInputStream("c://filename");
InputStream is = fis;
fis.close();
return is;
물론, 이것은 당신이 원하는 것을하지 않을 것입니다 . 돌아온 스트림이 이미 닫혔습니다. FileInputStream을 반환하고 완료하십시오. 호출 코드는이를 닫아야합니다.
한 스트림을 다른 스트림으로 감싸면 중간 스트림을 닫지 않고 매우 중요합니다. 외부 스트림 사용을 마치기 전에 닫지 않습니다. 외부 스트림도 닫을 것이기 때문입니다.
참고 URL : https://stackoverflow.com/questions/11100677/how-to-convert-fileinputstream-to-inputstream
'Programming' 카테고리의 다른 글
저장 프로 시저와 뷰의 차이점은 무엇입니까? (0) | 2020.07.21 |
---|---|
C에서 복소수로 작업하는 방법? (0) | 2020.07.21 |
UITableViewCell 서브 클래스로 "-layoutSubviews를 실행 한 후에도 자동 레이아웃이 여전히 필요합니다" (0) | 2020.07.21 |
Haskell에서`mod`와`rem`의 차이점 (0) | 2020.07.21 |
Eclipse 실행 파일 실행기 오류 : 동반자 공유 라이브러리를 찾을 수 없습니다 (0) | 2020.07.21 |