java中的文件io较之c中的IO更加的体现了java语言中封装的特性,学习java最基础的也是最最重要的无非就是这四点:
《1》封装
《2》继承
《3》抽象
《4》多态
在c中的文件IO与标准IO想必大多数的人们都还记忆尤新,那么对于java语言的文件IO呢,特别是对于图片的拷贝,那么今天这篇就先舍弃其它不谈,就谈谈java语言实现图片的拷贝。
在java中,对于文件的操作分为,以字节流的形式和以字符流的形式。字符流常用作文本的操作,而子节流的方式则文本图片都可以。所以对于图片的拷贝我们毫无悬念的悬着了以字节流的方式来进行拷贝。
下面就详细的解析下代码的实现:
package com;
//当前类需要其它包中的类需要在这里 import一下(写于类外)
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test {
/**
* 图片的拷贝
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建文件夹
File fileDir = new File("F:/yang");
fileDir.mkdir();
//创建两个对象 分别为将要复制的和被复制的
File f = new File("F:/my_pic.png");
File fileNew = new File("F:/yang/my_pic.png");
//如果文件不存在则创建一个和将要被复制的文件名字一样的文件
if(!fileNew.exists())
{
try {
fileNew.createNewFile();
System.out.println("创建成功");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//创建字节 图片只有使用字节流的形式来进行拷贝
byte data[] = new byte[1024];
int n = 0; //n为读取文件的大小
//读取文件到字符数组内 然后从字符数组内写到目标文件内
FileOutputStream foutput = null;
FileInputStream finput = null;
try {
finput = new FileInputStream(f);
foutput = new FileOutputStream(fileNew);
//循环的一直把文件读完 直到为-1时(-1时表示读完了)
while((n = finput.read(data)) != -1)
foutput.write(data,0,n);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//try catch为异常情况的处理 try后放的是可能出现异常的语句
//catch后面放的是异常情况下的提示性语句
finally{
try {
finput.close();
foutput.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println(" 复 制 完 毕 ");
}
}
好了,以上就是最简单的图片的拷贝了,希望还处于初期java的童鞋们,好好的努力啊。