java InputStream 转 FileInputStream
时间: 2023-11-19 19:33:16 浏览: 148
Java中,InputStream是抽象类,不能被直接实例化。而FileInputStream是InputStream的子类,可以从文件系统中读取数据。要将InputStream转换成FileInputStream,可以使用FileInputStream的构造函数,将InputStream对象作为参数传递进去。例如:
InputStream is = new ByteArrayInputStream(/* Some byte array */);
FileInputStream fis = new FileInputStream(FileDescriptor.in); // Did this to give fis the type FileInputStream.
if (is instanceof FileInputStream) {
fis = (FileInputStream) is;
}
此时fis即为类型为FileInputStream的对象,可以直接使用。
相关问题
java InputStream转FileInputStream
要将Java的InputStream对象转换为FileInputStream对象,可以使用以下代码:
```java
InputStream inputStream = ...; // 输入的InputStream对象
// 将InputStream对象转换为FileInputStream对象
FileInputStream fileInputStream = new FileInputStream(File.createTempFile("temp", ".tmp"));
try (OutputStream outputStream = new FileOutputStream(file)) {
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
}
```
这段代码首先创建一个临时文件,并将输入的InputStream对象写入该文件。然后可以使用得到的FileInputStream对象进行后续操作。请注意,这段代码使用了Java 7的try-with-resources语法来自动关闭流。
InputStream 转fileInputStream
你可以使用 `FileInputStream` 类的构造函数,将一个 `InputStream` 对象转换为 `FileInputStream` 对象。
示例代码如下:
```java
InputStream inputStream = ...; // 假设有一个 InputStream 对象
FileInputStream fileInputStream = new FileInputStream(FileDescriptor.in); // 先创建一个空的 FileInputStream 对象
fileInputStream.getChannel().transferFrom(Channels.newChannel(inputStream), 0, Long.MAX_VALUE); // 将 InputStream 中的数据写入到 fileInputStream 中
```
这段代码会将 `inputStream` 中的数据写入到 `fileInputStream` 对象中。需要注意的是,这种方式只能在 JDK1.7 及以上的版本中使用。如果你的程序需要兼容 JDK1.6 或更早的版本,可以使用 Apache Commons IO 库中的 `IOUtils` 类来实现:
```java
InputStream inputStream = ...; // 假设有一个 InputStream 对象
FileOutputStream fileOutputStream = new FileOutputStream("output.txt"); // 创建一个 FileOutputStream 对象
IOUtils.copy(inputStream, fileOutputStream); // 将 InputStream 中的数据写入到 fileOutputStream 中
```
这段代码会将 `inputStream` 中的数据写入到名为 `output.txt` 的文件中。需要注意的是,使用 `IOUtils` 类需要先引入 Apache Commons IO 库,详情请参考官方文档。
阅读全文