package test.kang;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/* 1)一类是基本byte数据的处理
BufferedInputStream
ZipInputStream(了解) 解压缩流,能够方便的读取Zip压缩文件
JarInputStream(了解)
CipherInputStream(了解) 解密流,提供了对输入流的加密和解密的方法
2) 一类是数据序列化功能扩展
DataInputStream 基本类型的IO
ObjectInputStream 对象IO
InputStreamReader String(char[])
*/
public class Test15_io {
static FileOutputStream fos = null;
static FileInputStream fis=null;
public static void main(String[] args){
//test1();输出内容到文件
//test2();复制文件夹以及文件
test3();
}
public static void test1(){
File file=new File("F://dic//readme.txt");
try {
fos = new FileOutputStream(file,true);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
String s="哈哈哈哈,这是字符输出流!!!";
byte[] b=s.getBytes();
try {
fos.write(b);
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void test2(){
String source= "F://dic//dic";
String target="F://dic//dic_copy";
copyAllFile(source, target);
}
public static void test3(){
File file=new File("F://dic//dic_copy");
deleteAllFile(file);
}
/*删除路径下的所有文件
*/
public static void copyAllFile(String source, String target){
copyDirectory(source, target);
}
//复制文件
public static void copyFile(File file,File target){
try {
if(!target.exists()){
target.createNewFile();
}
fis=new FileInputStream(file);
fos=new FileOutputStream(target);
int data=0;
while((data=fis.read())!=-1){
fos.write(data);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//复制文件夹
public static void copyDirectory(String source, String target){
File file=new File(source);
File file2=new File(target);
if(!file2.exists()){
file2.mkdir();
}
File[] files=file.listFiles();
for(int i=0;i<files.length;i++){
File fi=files[i];
if(fi.isFile()){
File file3=new File(target+"//"+fi.getName());
copyFile(fi,file3);
}else if(fi.isDirectory()){
String n=fi.getAbsolutePath();
String n2=target+"//"+fi.getName();
copyDirectory(n,n2);
}
}
}
//删除文件夹以及里面的文件
public static void deleteAllFile(File file){
File[] files=file.listFiles();
for(int i=0;i<files.length;i++){
File fi=files[i];
if(fi.isDirectory()){
deleteAllFile(fi);
}else if(fi.isFile()){
boolean b=fi.delete();
System.out.println(b+" ");
}
}
file.delete();
}
}