(练习)I/O文件流处理

实例1:

删除指定目录下的所有空文件
import java.io.File;

//删除指定目录下的所有空文件夹
public class DelDri {
    public static void main(String[] args) {
        File file = new File("d:/IO");
        File[] files = file.listFiles();
        for (File file2 : files) {
            if (file2.isDirectory()) {
                File[] file3 = file2.listFiles();
                if (file3.length == 0) {
                    file2.delete();
                }
            }
        }
    }
}

实例2:

删除指定目录下的所有空文件
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

//删除指定目录下的所有空文件
public class DelFile {
    public static void main(String[] args) {
        File file = new File("D:/IO/");
        file.delete();
        File[] file1 = file.listFiles();
        for (File file2 : file1) {
            if (file2.isDirectory()) {
                System.out.println("这是个文件夹");
            } else {
                if (file2.length() == 0) {
                    file2.delete();

                }
            }
        }
    }
}

实例3:

将D:/IO下的所有文件复制到目录D:/new_io
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

//将D:/IO下的所有文件复制到目录D:/new_io
public class IO3 {
    public void addFile(String string1, String string2) {
        // string1为源文件夹地址。string为目标文件夹地址。
        File file1 = new File(string1);
        File[] f = file1.listFiles();
        // 遍历源目录
        for (File file : f) {
            String string3 = string2;
            String string4 = string1;
            // 更新地址
            string3 += "/" + file.getName();
            string4 += "/" + file.getName();
            File file2 = new File(string3);
            if (file.isDirectory()) {
                // 如果是目录,就创建目录.然后再调用这个方法
                file2.mkdir();
                System.out.println("文件夹建立完毕");
                addFile(string4, string3);
            } else {
                // 如果是文件.就将文件内容复制进去
                try {
                    file2.createNewFile();
                    @SuppressWarnings("resource")
                    FileInputStream fis = new FileInputStream(string4);
                    @SuppressWarnings("resource")
                    FileOutputStream fos = new FileOutputStream(string3);
                    byte[] data = new byte[1024];
                    int len;
                    while ((len = fis.read(data)) != -1) {
                        String string = new String(data, 0, len);
                        //取出源文件中内容写入目标文件中
                        fos.write(string.getBytes());
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    public static void main(String[] args) {
        IO3 io = new IO3();
        io.addFile("d:/IO", "d:/new_io");
    }
}

实例4:

用File类,在d:/io 目录中创建新的目录 test 在此目录中创建新的文件test.txt,使用BufferedWriter类写入5行数据,使用BufferedReader类读取出来,并显示到控制台
public class HomeWork1 {
    public void Mymkdir(String string, String string2) {
        File file = new File(string);
        if (!file.exists()) {
            file.mkdirs();
        }
        string2 = string + string2;
        File file2 = new File(string);
        if (!file2.exists()) {
            try {
                file2.createNewFile();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    public void ioOUT(String string) {
        try {
            FileWriter fw = new FileWriter(string);
            BufferedWriter bw = new BufferedWriter(fw);
            bw.write("古军");
            bw.newLine();
            bw.write("华是");
            bw.newLine();
            bw.write("山东");
            bw.newLine();
            bw.write("科技大学");
            bw.newLine();
            bw.write("学生");
            fw.flush();
            bw.flush();
            fw.close();
            bw.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public void ioINT(String string) {
        try {
            FileReader fr = new FileReader(string);
            BufferedReader br = new BufferedReader(fr);
            String string2 = null;
            while ((string2 = br.readLine()) != null) {
                System.out.println(string2);
            }
            fr.close();
            br.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        HomeWork1 homeWork1 = new HomeWork1();
        homeWork1.Mymkdir("d:/IO/test", "test.txt");
        String string = "d:/IO/test/test.txt";
        homeWork1.ioOUT(string);
        homeWork1.ioINT(string);

    }
}

实例5:

使用File类获得指定文件的扩展名,比如,d:/io/IODemo.java显示java
public class HomeWork2 {
    public void f1(String string) {
        File file = new File(string);
        String string2 = file.getAbsolutePath();
        int key = string2.lastIndexOf(".");
        for (int i = key + 1; i < string2.length(); i++) {
            System.out.print(string2.charAt(i));
        }
    }

    public static void main(String[] args) {
        HomeWork2 homeWork2 = new HomeWork2();
        homeWork2.f1("dsjkfljslkfjsl.java");
    }
}

实例6:

使用File类创建新文件,文件名为 当前时间.txt,格式示例如下:20170831163809.txt
public class HomeWork3 {
    public void createFile(String string) {
        string = "d:/IO/"+string+".txt"; 
        File file = new File(string);
        if (!file.exists()) {
            try {
                file.createNewFile();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
    public String data() {
        Date date = new Date();
        SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddhhmmss");
        String dateString = sf.format(date);
        return dateString;
    }
    public static void main(String[] args) {
        HomeWork3 homeWork3 = new HomeWork3();
        homeWork3.createFile(homeWork3.data());
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值