ran*_*jan 115 java fileinputstream
我只是想一个转换FileInputStream到一个InputStream,我该怎么办呢?
例如
FileInputStream fis = new FileInputStream("c://filename");
InputStream is = ?;
fis.close();
Run Code Online (Sandbox Code Playgroud)
Kum*_*tra 133
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;
Run Code Online (Sandbox Code Playgroud)
Sum*_*ngh 54
InputStream is = new FileInputStream("c://filename");
return is;
Run Code Online (Sandbox Code Playgroud)
Joe*_*ckx 35
FileInputStream 是一个inputStream.
FileInputStream fis = new FileInputStream("c://filename");
InputStream is = fis;
fis.close();
return is;
Run Code Online (Sandbox Code Playgroud)
当然,这不会做你想做的事情 ; 您返回的流已经关闭.只需返回FileInputStream即可完成.调用代码应该关闭它.
您通常首先从输入流中读取然后将其关闭.您可以将FileInputStream包装在另一个InputStream(或Reader)中.关闭包装流/阅读器时,它将自动关闭.
如果这是一个将InputStream返回给调用者的方法,则调用者有责任在完成后关闭该流.如果在方法中关闭它,调用者将无法使用它.
回答你的一些评论......
要将内容InputStream发送到远程使用者,您可以将InputStream的内容写入OutputStream,然后关闭这两个流.
远程消费者对您创建的流对象一无所知.他只是在InputStream中接收内容,他将创建,读取和关闭.