博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IO---Java 文件复制
阅读量:6913 次
发布时间:2019-06-27

本文共 1312 字,大约阅读时间需要 4 分钟。

利用FileInputStream及FileOutputStream实现文件的复制操作。

 

FileOutStream out=new FileOutStream(outfile);

如果存在outfile则重构,如果不存在outfile则创建。

FileOutStream out=new FileOutStream(outfile,ture);  append ture or flase

如果存在outfile则追加,如果不存在outfile则创建。

 

实现复制方法:

public static void sds(File infile, File outfile) throws IOException {        FileInputStream in = new FileInputStream(infile);        FileOutputStream out = new FileOutputStream(outfile);        if (!infile.exists())            throw new IllegalArgumentException("文件" + infile + "不存在");        if (!infile.isFile())            throw new IllegalArgumentException(infile + "不是文件");        byte[] buf = new byte[20 * 1024];        int bytes = 0;        while ((bytes = in.read(buf, 0, buf.length)) != -1) {            out.write(buf, 0, bytes);            out.flush();        }        in.close();        out.close();    }

其中 out.flush:

即清空缓冲区数据,就是说你用读写流的时候,其实数据是先被读到了内存中,然后用数据写到文件中,当你数据读完的时候不代表你的数据已经写完了,因为还有一部分有可能会留在内存这个缓冲区中。这时候如果你调用了 close()方法关闭了读写流,那么这部分数据就会丢失,所以应该在关闭读写流之前先flush(),先清空数据。 拓展: DataOutputStream out=new DataOutputStream(new FileOutputStream(outfile)); 利用DataOutputStream包装可以实现一些类似于writeInt(10)、writeUTF(“中国”) #utf-8、writeChars(“知乎”) utf-16be、 BufferedOutputStream 包装 FileInputStream及FileOutputStream可以用于提高IO性能。

转载于:https://www.cnblogs.com/wyfstudy/p/6653742.html

你可能感兴趣的文章
利用nginx的proxy_next_upstream实现线路容灾
查看>>
chrome 插件开发
查看>>
[LintCode] Serialize and Deserialize Binary Tree
查看>>
Android 矢量图
查看>>
linux awk命令详解
查看>>
MySQL的SET字段类型
查看>>
Quartz数据库表分析
查看>>
python 中的if __name__ == 'main':
查看>>
各网站平台API接口整理
查看>>
以修改字体为例谈Android的listView开发优化
查看>>
addLoadEvent(func) 不管在页面加载完毕执行多少个函数,都应付自如
查看>>
Android下横竖屏切换的处理
查看>>
进击的JAVA(1)
查看>>
PHP整理笔记五目录与文件
查看>>
在ASP.net中使用OWC绘制统计图表
查看>>
【BZOJ 2440】[中山市选2011]完全平方数
查看>>
SVN学习总结(1)——SVN简介及入门使用
查看>>
嵌入式linux开发uboot移植(三)——uboot启动过程源码分析
查看>>
zabbix-agentd 的配置
查看>>
网站原创文章撰写的5点注意要素
查看>>