File,IO流的一些读写操作

1.File在指定目录创建文件

File file = new File("F:\\hell\\world\\Java\\a.txt");// 创建文件的时候,要保证对应的文件夹已经存在

try {
file.createNewFile();
} catch (IOException e) {
System.out.println("创建失败");

e.printStackTrace();

2.File创建新目录和新文件

File file = new File("D:\\Hello\\World\\a");
File txtFile = new File(file,"a.txt0");
file.mkdirs();//创建新文件夹

try {
txtFile.createNewFile();//创建新文件
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

   mkdirs()与mkdir()的区别

mkdirs()可创建多级目录,mkdir()只能创建一级目录.

3.运用IO流指定数组拷贝指定文件

FileInputStream fis = new FileInputStream("致青春.mp3");//挎号内是文件的路径和文件名字
FileOutputStream fos = new FileOutputStream("copy.mp3");//挎号内是拷贝后的文件的路径和文件名字

byte[] arr = new byte[1024 * 8];
int len;
while((len = fis.read(arr)) != -1) {//如果忘记加arr,返回的就不是读取的字节个数,而是字节的码表值


fos.write(arr,0,len);
}

fis.close();
fos.close();

4.用BufferIO读写文件

BufferedInputStream bis = new BufferedInputStream(new FileInputStream("致青春.mp3"));

BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("copy.mp3"));

int b;
while((b = bis.read()) != -1) {
bos.write(b);
}
bis.close();
bos.close();
 

//BufferedInputStream 和BufferOutputStream  读写是操作一个长度为8192的字节数组进行读写,他们完成一次读写需要操作两个数组,所有单轮效率是没有我们自定义8192数组来操作IO流的效率高的.

//flush和close方法的区别

flush()只是刷新缓存区,刷新完可以继续读写,而close()刷新完缓存区后就关流了,不能继续读写.

     5.JDK1.7版本IO关流写法


try(
FileInputStream fis = new FileInputStream("xxx.txt");
FileOutputStream fos = new FileOutputStream("yyy.txt");

){
int b;
while((b = fis.read()) != -1) {
fos.write(b);
}
 

 6.传统关流的写法

try {
fis = new FileInputStream("xxx.txt");
fos = new FileOutputStream("yyy.txt");

int b;
while((b = fis.read()) != -1) {
fos.write(b);
}
}finally {
try{
if(fis != null)
fis.close();
}finally { //try fianlly的嵌套目的是能关一个尽量关一个
if(fos != null)
fos.close();
}
}

7.IO流简单加密写法

/**
* @param args
* @throws IOException 
* 将写出的字节异或上一个数,这个数就是密钥,解密的时候再次异或就可以了
*/
public static void main(String[] args) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("copy.jpg"));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("copy2.jpg"));

int b;
while((b = bis.read()) != -1) {
bos.write(b ^ 123);
}

bis.close();
bos.close();
}





新一代智能抠像插件PowerMatte ,抠像过程方便快捷,解决一些视频抠像不足的问题。此插件可以快捷有效的解决AE抠像问题。隆重向您推荐。 Power Matte 公司出品 AfterFX原话:补充下AE中扣复杂动态视频的技法吧,当然可以画mask 隔些帧调整下关键帧(原理和vegas相同),另外可以解放自己释放创造力的采用一款无比强大的抠图插件——Power Matte! 用户需要做的是 1 有AE并知道简单的操作具体参加下图 2 画两个只有几个点的开式mask(里mask圈出要保留的区域 外mask把不想要的区域圈出) 3 每隔几十或几百帧对那个几个点的mask做一次调整 4 点render 出去吃饭或上床睡觉 再回来时 已经得到可爱的alpha通道了 而且由于这个插件NB得过分 因而做到了麻烦的手动画mask做不到的对半透明物体、稀疏毛发的几乎完美的抠图 我对这个插件的总结是 它的出现让在这之前所有的PS抠图技巧变成了笑话的存在 具体参加下图 看看那稀疏的头发扣得是何其近乎完美 【插件支持版本】 经测试,此插件适用于AEcs4 cs5上...其余的没做测试,大家在下载前敬请留意。 【插件安装方法】 1、下载解压后双击文件夹中的 AE抠像插件Power matte-v2.exe 进行安装,安装到AE指定的插件目录即可 2、关于破解:上面的第一步做完以后,请大家把解压后文件夹中 AE抠像插件Power matte-v2.0+教程+素材\powermatte-ae-tutorial 这个路径里的 footage 和 projects 这2个文件夹放到 Plug-ins\DFT Power Matte v2 文件夹中去,关于这一步我也不知道该怎么解释,文件夹里面是和插件配套的,不做这一步的话插件会打不开无法使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值