Java、Linux、Win 快速生成指定大小的空文件
Linux
dd 命令:
dd if=/dev/zero of=<fileName> bs=<一次复制的大小> count=<复制的次数>
生成 50 MB 的空文件:
dd if=/dev/zero of=50M-.txt bs=1M count=
Windows
fsutil 命令:
fsutil file createnew <fileName> <文件大小单位字节>
生成 10MB 的空文件:
fsutil file createnew 10M-.txt
Java
用 FileChannel 的 write 方法:
在指定位置插入一个空字符,这个指定的位置下标即生成目标文件的大小,单位为字节
private static void createFixLengthFile(File file, long length) throws IOException {
FileOutputStream fos = null;
FileChannel outC = null;
try {
fos = new FileOutputStream(file);
outC = fos.getChannel();
// 从给定的文件位置开始,将字节序列从给定缓冲区写入此通道
// ByteBuffer.allocate 分配一个新的字节缓冲区
outC.write(ByteBuffer.allocate(1), length - 1);
} finally {
try {
if (outC != null) {
outC.close();
}
if (fos != null) {
fos.close();
}
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
第二种,用 RandomAccessFile 的 setLength 方法更为方便:
private static void createFile(File file, long length) throws IOException {
RandomAccessFile r = null;
try {
r = new RandomAccessFile(file, "rw");
r.setLength(length);
} finally {
if (r != null) {
r.close();
}
}
}
参考资料:
java 瞬间快速创建固定大小文件,毫秒级。。。
Java、Linux、Win 快速生成指定大小的空文件的更多相关文章
- 使用Java创建指定大小的空文件夹
/** 方法一 * 创建固定大小的文件 * @param file * @param length * @throws IOException */ public static void create ...
- linux生成指定大小的文件(转)
# dd if=/dev/zero of=50M.file bs=1M count=50在当前目录下生成一个50M的文件 虚拟块设备文件更通用的名称是硬盘镜像文件(Hard Disk Image),但 ...
- PHP 生成指定大小随机图片
PHP 生成指定大小随机图片 <?php $image_width = 100; $image_height = 100; $image_str = ''; if (isset($_GET['w ...
- java 压缩文件 传入文件数组,压缩文件,在指定路径下生成指定文件名的压缩文件
/** * 传入文件数组,压缩文件,在指定路径下生成指定文件名的压缩文件 * * @param files * 文件数组 * @param strZipName * 压缩文件路径及文件名 * @thr ...
- dd 生成指定大小文件
d命令可以轻易实现创建指定大小的文件,如 dd if=/dev/zero of=test bs=1M count=1000 会生成一个1000M的test文件,文件内容为全0(因从/dev/zero中 ...
- 【linux】find删除指定时间之前的文件
今天磁盘满了,想删掉一些老的日志文件.开始想写个python脚本,转念一想,可能shell脚本好点.结果发现,根本不用写脚本,一个find指令就可以解决问题了. 先上指令 -exec rm {} \; ...
- Java根据实体快速生成对象
一.来源 在写代码时总是遇到下面这种情况: Account account = new Account(); account.setId(); account.setGmtCreate(); acco ...
- java保存动态代理生成的类的class文件
启动时加: -Dsun.misc.ProxyGenerator.saveGeneratedFiles=true
- shell 清空指定大小的日志文件
#!/bin/bash # 当/var/log/syslog大于68B时 if ! [ -f /var/log/syslog ] then echo "file not exist!&quo ...
随机推荐
- [HDU5685]Problem A
来源: 2016"百度之星" - 资格赛(Astar Round1) 思路: 首先处理出所有前缀的哈希$f$,对于所有的询问$[a,b]$,答案即为$\frac{f[b]}{f[a ...
- memcached 数据库
安装 [root@node2 ~]# yum install memcached 启动 [root@node2 ~]# systemctl start memcached 连接 [root@node2 ...
- unity3d 摄像机抖动效果 CameraShake
unity3d 摄像机抖动效果 ,利用脚本直接控制:当然也可以选择使用dotween插件,但到不至于为了使用仅一个功能,就导入了一个插件: 脚本示例: using UnityEngine; using ...
- FT232H FT2232H FT4232H
The FT232H is the single channel version, the FT2232H is the dual-channel, and there is also anFT423 ...
- 偷懒啦!button多了,这样写既简洁又高效
在日常的项目中,我最喜欢用button了,但是button多了,写起来又枯燥又费时,今天学到一方法,绝对简单高效! 看看以前: 看吧,这还只是声明,接下来还有: 等等……,是不是很麻烦?现在找到新方法 ...
- Delphi 简单命名管道在两个进程间通讯
服务器端代码: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Control ...
- RxJava2 源码解析(一)
概述 最近事情太多了,现在公司内部的变动,自己岗位的变化,以及最近决定找工作.所以博客耽误了,准备面试中,打算看一看RxJava2的源码,遂有了这篇文章. 不会对RxJava2的源码逐字逐句的阅读,只 ...
- Mybatis Dynamic Query 更新
文章目录 1. 简介 2. 准备工作 3. 开始更新 3.1. update 3.2. update Null 4. 结束 5. 关注@我 项目地址:https://github.com/wz2coo ...
- 数据库 简介 升级 SQLite 总结 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Android官方导航栏ActionBar(二)—— Action View、Action Provider、Navigation Tabs的详细用法
在上一篇文章(Android之官方导航栏ActionBar)中,我们介绍了ActionBar各组成部分的基本应用.ActionBar除了提供Action Buttons外,还提供了多种导航方式如 Ac ...