IOUtils.copyBytes()方法具有什么功能呢?
下文笔者讲述IOUtils.copyBytes()方法的功能及示例分享,如下所示
IOUtils.copyBytes()方法的功能
IOUtils.copyBytes()方法的功能:
将指定数据源复制到目的地
IOUtils.copyBytes(in,out,4096,false)
参数说明:
in:是FSDataInputStream类的对象,是有关读取文件的类,也就是所谓“输入流”
out:是FSDataOutputStream类的对象,是有关文件写入的类,也就是“输出流”
4096表示用来拷贝的buffer大小(buffer是缓冲区)--缓冲区大小
true - 是否关闭数据流,如果是false,就在finally里关掉
IOUtils.copyBytes方法示例
import java.io.BufferedInputStream;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
public class IOUtilsDemo {
public static void main(String[] args)throwsIOException {
BufferedInputStream is =newBufferedInputStream(System.in);
FileSystem fs = FileSystem.get(newConfiguration());
Path outputPath =newPath("[hdfs://xxyy:9000](hdfs://xxyy:9000)"+ args[0]);
FSDataOutputStream os = fs.create(outputPath);
// 参数说明
// is - 输入源
// os - 输出源
// 4096 - 缓冲区大小
// true - 是否关闭数据流,如果是false,就在finally里关掉
// IOUtils.closeStream(is);
// IOUtils.closeStream(os);
IOUtils.copyBytes(is, os,4096,true);
System.out.println("Created file "+ outputPath +" of length "+
fs.getFileStatus(outputPath).getLen() +" bytes.");
}// END: main
}// END: IOUtilsDemo
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


