使用FileChannel写入任何InputStream,可以通过以下步骤实现:
以下是一个示例代码:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
public class InputStreamToFileChannel {
public static void main(String[] args) {
String inputFile = "input.txt";
String outputFile = "output.txt";
try {
FileInputStream fis = new FileInputStream(inputFile);
FileOutputStream fos = new FileOutputStream(outputFile);
FileChannel inputChannel = fis.getChannel();
FileChannel outputChannel = fos.getChannel();
outputChannel.transferFrom(inputChannel, 0, inputChannel.size());
inputChannel.close();
outputChannel.close();
fis.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
在这个示例中,我们首先创建了一个FileInputStream对象,用于读取输入文件中的数据。然后,我们创建了一个FileOutputStream对象,用于写入输出文件中的数据。接着,我们使用getChannel()方法获取了FileChannel对象,并使用transferFrom()方法将InputStream中的数据写入临时文件中。最后,我们关闭了所有的资源。
这种方法可以处理任何类型的InputStream,包括网络流、文件流、字节流等。
领取专属 10元无门槛券
手把手带您无忧上云