programing

FileInputStream을 InputStream으로 변환하는 방법

firstcheck 2022. 9. 26. 21:23
반응형

FileInputStream을 InputStream으로 변환하는 방법

변환하고 싶을 뿐입니다.FileInputStream에 대해서InputStream,내가 어떻게 그럴 수 있을까?

FileInputStream fis = new FileInputStream("c://filename");
InputStream is = ?; 
fis.close();
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을 반환하기만 하면 됩니다.발신 코드가 닫힙니다.

일반적으로 먼저 입력 스트림에서 읽은 후 닫습니다.FileInputStream은 다른 InputStream(또는 리더)으로 랩할 수 있습니다.포장 스트림/판독기를 닫으면 자동으로 닫힙니다.

이것이 발신자에게 InputStream을 반환하는 메서드인 경우 스트림이 종료된 후 스트림을 닫는 것은 발신자의 책임입니다.메서드로 닫으면 발신자가 사용할 수 없게 됩니다.

댓글에 답하자면...

InputStream 콘텐츠를 원격 사용자에게 전송하려면 InputStream의 콘텐츠를 OutputStream에 쓴 다음 두 스트림을 모두 닫습니다.

원격 사용자는 사용자가 생성한 스트림 개체에 대해 전혀 알지 못합니다.콘텐츠를 InputStream으로 받아 작성, 읽기 및 종료합니다.

스트림을 다른 스트림으로 줄바꿈할 경우 중간 스트림을 닫지 않으며 매우 중요합니다.외부 흐름 사용이 끝나기 전에 닫으면 안 돼요.왜냐하면 너도 바깥 물줄기를 닫을 것이기 때문이다.

언급URL : https://stackoverflow.com/questions/11100677/how-to-convert-fileinputstream-to-inputstream

반응형