文件到InputStream
我只是想将File
转换为InputStream
,我该怎么做?
例如
FileInputStream fis = new FileInputStream("c://filename"); InputStream is = ?; fis.close();
如何将FileInputStream
转换为InputStream
,以便我可以closuresfis
或者有任何其他方式将File
转换为InputStream
?
您通常会首先从inputstream中读取数据,然后closures它。 您可以将FileInputStream包装在另一个InputStream(或Reader)中。 closures包装stream/阅读器时,它将自动closures。
如果这是一个将InputStream返回给调用者的方法,那么调用者有责任closuresstream。 如果您在方法中closures它,则调用者将无法使用它。
回答您的一些意见…
要将内容InputStream发送到远程使用者,您需要将InputStream的内容写入OutputStream,然后closures这两个stream。
远程用户不知道任何有关您创build的stream对象。 他只是收到他将创build的InputStream中的内容,读取和closures。
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;
当然, 这不会做你想做的事情 ; 你返回的stream已经closures了。 只要返回FileInputStream并完成它。 调用代码应该closures它。
如果将一个stream包装到另一个stream中,则不会closures中间stream,而且非常重要:在完成使用外部stream之前,不要closures它们。 因为你也会closures外部stream。