我只想将 a 转换为 a FileInputStream
,InputStream
我该怎么做?
例如
FileInputStream fis = new FileInputStream("c://filename");
InputStream is = ?;
fis.close();
我只想将 a 转换为 a 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是一个输入流。
FileInputStream fis = new FileInputStream("c://filename");
InputStream is = fis;
fis.close();
return is;
当然,这不会做你想做的事;您返回的流已经关闭。只需返回 FileInputStream 并完成它。调用代码应该关闭它。
您通常会首先从输入流中读取,然后将其关闭。您可以将 FileInputStream 包装在另一个 InputStream(或 Reader)中。当您关闭包装流/阅读器时,它将自动关闭。
如果这是一个将 InputStream 返回给调用者的方法,那么调用者有责任在完成流后关闭它。如果你在你的方法中关闭它,调用者将无法使用它。
要回答您的一些评论...
要将内容 InputStream 发送到远程使用者,您可以将 InputStream 的内容写入 OutputStream,然后关闭两个流。
远程消费者对您创建的流对象一无所知。他只是在他将创建、读取和关闭的 InputStream 中接收内容。
如果将一个流包装到另一个流中,则不会关闭中间流,这非常重要:在完成使用外部流之前不要关闭它们。因为你也会关闭外部流。