极客学院 java 文件的操作 代码笔记


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;

public class FileDemo {

    public static void main(String[] args) {
        File file=new File("Data.txt");   //未指定路径
        //File file=new File("../../Data.txt");   //文件创建在上一级的上一级
        if(file.exists()){
            System.out.println("是否是文件:"+file.isFile());   //判断是否是一个已存在的的文件
        }
        else{

            System.out.println("文件不存在");
            try {
                file.createNewFile();    //创建
                System.out.println("文件已及成功创建");

                File rename=new File("data1.txt");  //创建空文件,不是实质性文件
                file.renameTo(rename);   //将file重命名为 data1

                //file.delete();    //文件删除
            } catch (IOException e) {

                System.out.println("文件无法创建");
            }
        }


        File dir=new File("wade");
        if(dir.mkdir()){//创建文件夹
            System.out.println("文件夹创建成功");
        }
        else{
            if(dir.exists()){
                System.out.println("文件夹以及创建");
            }
            else{
            System.out.println("文件夹创建失败");
            }
        }

        File dir1=new File("wade1");
        dir.renameTo(dir1); //文件夹重命名
        dir.delete();    //文件夹的删除,必须是空文件夹

        //读取文件名
        System.out.println(file.getName());
        //读取文件路径
        System.out.println(file.getPath());
        //读取文件绝对路径,从根目录开始
        System.out.println(file.getAbsolutePath());     
        //读取文件的父级路径
        System.out.println(new File (file.getAbsolutePath()).getParent());   //完整路径,防止null
        //读取文件大小
        System.out.println(file.length());
        //判断文件是否被隐藏
        System.out.println(file.isHidden());
        //判断文件是否可读
        System.out.println(file.canRead());
        //判断文件是否可写
        System.out.println(file.canWrite());
        //判断是否是文件夹
        System.out.println(file.isDirectory());


        //文件属性设置
        //将文件设置为可写
        file.setWritable(true);
        //设置文件可读
        file.setReadable(true);
        //设置为只读
        file.setReadOnly();

        //遍历文件夹,另写方法
        printFiles(dir);

        //文件的简单读写
        if(file.exists()){
            System.err.println("文件存在");
            try {
                //创建用于文件输入的三个流
                FileInputStream fis=new FileInputStream(file);   //定义输入流,字节流
                //输入流的Reader,字符流,UTF-8为指定编码,防止乱码
                InputStreamReader is2=new InputStreamReader(fis,"UTF-8");

                BufferedReader br=new BufferedReader(is2);    //带有缓冲区的Reader

                String line ; //临时存放读取到的数据
                while((line=br.readLine())!=null){   //文件未结束
                    System.out.println(line);
                }
                br.close();
                is2.close();
                fis.close();    //关闭三个流
            } catch (FileNotFoundException e) {       //输入流异常

                e.printStackTrace();
            } catch (UnsupportedEncodingException e) { //InputStreamReader异常

                e.printStackTrace();
            } catch (IOException e) {        //读取异常抛出
                e.printStackTrace();
            }



            //创建输出流
            try {
                FileOutputStream fos=new FileOutputStream(file);
                OutputStreamWriter osw=new OutputStreamWriter(fos, "UTF-8");
                BufferedWriter bw=new BufferedWriter(osw);

                bw.write("wade\n");   //写入数据
                bw.write("kobe\n");
                bw.write("james\n");  //此种写入会覆盖文件中原有的内容

                bw.close();
                osw.close();
                fos.close();
                System.out.println("写入完成");
            } catch (FileNotFoundException e) {

                e.printStackTrace();
            } catch (UnsupportedEncodingException e) {

                e.printStackTrace();
            } catch (IOException e) {   //写入异常抛出

                e.printStackTrace();
            }

        }


}

    private static void printFiles(File dir) {
                //遍历文件夹
                if(dir.isDirectory())
                {     //如果是目录
                    File next[]=dir.listFiles();      //列出文件名字,是一个文件数组
                    for(int i=0;i<next.length;i++)
                    {
                        if(next[i].isFile())
                        {      //判断是否文件
                        System.out.println(next[i].getName());  //输出名字
                        }
                    else{
                        System.out.println(next[i].getName()); 
                        printFiles(next[i]);   //调用自身
                    }
                }
            }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值