File类

//针对文件的操作
import java.io.File;
import java.io.IOException;
public class Test{
    public static void main(String []args){
        //1.通过一个文件类对象f和一个文件a.txt产生关系
        //就可以通过操作文件类的对象f来去影响文件a.txt了
        //方法一:
        //String path="e:/a.txt";
        //File f=new File(path);
        //方法2
        File f=new File("e:/a.txt");
        //2.判断文件是否存在
        boolean iden=f.exists();
        if(iden){
            System.out.println("a.txt文件存在");
        }else{
            System.out.println("a.txt文件不存在");
        }
        //3.通过程序创建文件
        try{
            boolean iden1=f.createNewFile();
            if(iden1){
                System.out.println("a.txt创建成功");
            }else{
                System.out.println("a.txt创建失败");
            }
        }catch(IOException ex){
            System.out.println("出现的异常为:"+ex.getMessage());
            ex.printStackTrace();
        }
        //4.测试文件的只读属性(有两个方法)
        boolean iden2=f.canWrite();
        if(iden2){
            System.out.println("文件a.txt存在且允许写入");
        }else{
            System.out.println("文件a.txt是只读状态,不允许写入");
        }
        boolean iden3=f.canRead();
        if(iden3){
            System.out.println("文件a.txt可读");
        }else{
            System.out.println("文件a.txt不可读");
        }
        //4.测试文件的隐藏属性
        boolean iden4=f.isHidden();
        if(iden4){
            System.out.println("a.txt文件被隐藏了");
        }else{
            System.out.println("a.txt文件没有被隐藏");
        }
        //5.测试文件的大小属性所用的方法
        long size=f.length();
        System.out.println("a.txt文件的大小为"+size+"个字节");
        //6.获取文件的名字
        String name=f.getName();
        System.out.println("文件的名字"+name);
        //7.获取路径名和文件名
        String path=f.getPath();
        System.out.println("路径的名字为"+path);
        //8.获取文件最后一次被修改的时间
        long times=f.lastModified();
        System.out.println("a.txt最后一次被修改的时间为:"+times);
        //9.获取文件的上一级目录的名字
        String parent=f.getParent();
        System.out.println(parent);
        //10.输出一个文件
        boolean iden5=f.delete();
        if(iden5){
            System.out.println("a.txt文件删除成功");
        }else{
            System.out.println("a.txt文件删除失败");
        }

    }
}

//针对文件夹的操作
import java.io.File;
import java.io.IOException;
public class Test1{
    public static void main(String []args){
        //java中用File类即代表文件,有代表文件夹
        //如何判定f是一个文件还是一个文件夹呢?
        File f=new File("e:/suitanglian");
        //1.判断是否是一个文件
        boolean isfile=f.isFile();
        if(isfile){
            System.out.println("这是一个文件");
        }else{
            System.out.println("这是一个文件夹");
        }
        //2.判断是否是一个文件夹
        boolean isdiresctory=f.isDirectory();
        if(isdiresctory){
            System.out.println("这是一个文件夹");
        }else{
            System.out.println("这是一个文件");
        }
        //3.判断此文件夹中有多少个文件
        File []arr=f.listFiles();
        int len=arr.length;
        System.out.println("共有"+len+"个文件");
        //输出数组里面的内容:叫做循环遍历数组
        //方法1:
        for(int i=0;i<arr.length;i++){
            System.out.println(arr[i]);
        }
        //方法2:
        for(int i=0;i<len;i++){
            //把数组里面的内容赋值给File类型的对象
            File file=arr[i];
            String name=file.getName();
            System.out.println("文件名字为:"+name);
            int index=name.indexOf(".");
            String diff=name.substring(index+1);
            System.out.println("文件名字为:"+name+",后缀为:"+diff);
        }

    }
}


public class Test2{
    public static void main(String []args){
    String name="long.txt";
    //获取字符串中一个字符的下标,返回值类型为int形
    int index=name.indexOf(".");
    System.out.println("字符.的下标为:"+index);
    //截取字符串,从下标为index+1处开始到字符串结束
    String str=name.substring(index+1);
    System.out.println("截取的字符串为:"+str);
    }
}

程序4
import java.io.File;
public class Test3{
    public static void main(String []args){
        //获取磁盘根目录存放到数组中
        File []arr=File.listRoots();
        //获取数组的大小
        int len=arr.length;
        System.out.println("电脑中磁盘的长度为:"+len);
        //输出数组中的具体内容:即循环遍历数组
        for(int i=0;i<arr.length;i++){
            //方法一:直接输出
            System.out.println("电脑中的磁盘根目录有:"+arr[i]);

            //用File类创建的对象调用相关方法输出
            File f=arr[i];
            //程序证明:磁盘根目录的遍历没有名字只有路径
            String name=f.getName();
            System.out.println("电脑中磁盘根目录的名字为:"+name);

            String path=f.getPath();
            System.out.println("电脑中磁盘的路径名称为:"+path);
            //判断磁盘是文件还是文件夹
            boolean len1=f.isDirectory();
            if(len1){
                System.out.println("这是一个文件夹");
                //磁盘是文件夹时里面有多少个文件呢
                File [] file=f.listFiles();
                //获取磁盘里面所有文件的大小
                int size=file.length;
                System.out.println("该磁盘中一共有"+size+"文件");
            }else{
                System.out.println("这是一个文件");
            }

        }
    }   
}

程序5:黑客帝国,遍历c盘中的所有文件,打印输出所有文件夹名,文件夹路径,文件名,文件路径
import java.io.File;
//遍历c盘当中的所有文件
public class Test4{
    public static void main(String []args){
        //使文件File类创建对象与磁盘根目录建立联系
        File f=new File("c:/");
        //用类名调用静态的show方法
        Test4.show(f);
    }
    //创建一个带File类型参数的show方法
    public static void show(File f){
        //1.判断c盘中的内容文件夹还是文件,是文件夹是递归调用自己直到是文件为止
        boolean iden=f.isDirectory();
        if(iden){//是一个文件夹
            //2.若是文件夹则获取文件夹的名称和路径名称并输出
            String name=f.getName();
            String path=f.getPath();
            System.out.println("文件夹的路径名称为:"+path+" 文件夹的名称为:"+name);
            //3.查找c盘文件夹中有多少个文件,数组中用来存放的是文件夹
            File []arr=f.listFiles();
            if(arr!=null){
                //获取C盘文件夹中文件夹的大小
                int len=arr.length;
                //循环遍历C盘文件夹中的内容
                for(int i=0;i<len;i++){
                    //把数组里面的内容(文件夹或文件)赋给File类建立的对象
                    File file=arr[i];
                    //递归调用自己(因为文件夹是可以嵌套的即文件夹中还有文件夹)
                    show(file);
                }
            }
        }else{//是一个文件
                String path=f.getPath();
                String name=f.getName();
                System.out.println("文件的路径"+path+"文件的名字"+name);
        }
    }
}

程序:给定一个文件夹,查找文件夹中的所有java文件,并统计java文件的个数
方法一:
//遍历指定文件夹中的所有java文件,我遍历的是g:/suitanglian文件夹下的java文件
import java.io.File;
import javax.swing.JOptionPane;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Test5{
    public static  int sum;
    public static void main(String []args){
        String path=JOptionPane.showInputDialog(null,"请输入您要查找的文件夹路径");
        File f=new File(path);
        Test5.show(f);
        System.out.println("一共有"+sum+"个java文件");
    }
    public static void show(File f){
        boolean iden=f.isDirectory();
        if(iden){
            //获取用户输入的文件夹中有多少文件
            File []arr=f.listFiles();
            if(arr!=null){
                for(int i=0;i<arr.length;i++){
                    File file=arr[i];
                    show(file);
                }
            }
        }else{//是文件,找java文件
            String path=f.getPath();
            String name=f.getName();
            int index=name.indexOf(".");
            //截取的字符串
            String diff=name.substring(index+1);
            if(diff.equals("java")){
                sum++;
                System.out.println("java文件名:"+name+"路径名"+path);
            }

        }
    }

}



方法二:
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.File;
import java.io.IOException;

public class Test51{
    public static int count=0;
    public static void main(String []args){
        JFrame jf=new JFrame();
        jf.setTitle("统计文件窗体");
        jf.setSize(500,300);
        jf.setLayout(null);
        jf.setLocationRelativeTo(null);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JLabel labtitle=new JLabel("统计文件");
        labtitle.setBounds(200,30,100,20);
        jf.add(labtitle);
        JLabel lab=new JLabel("请输入指定文件夹的抽象路径名:");
        lab.setBounds(10,70,200,30);
        jf.add(lab);
        JTextField txt=new JTextField();
        txt.setBounds(230,70,170,30);
        jf.add(txt);
        JButton btn=new JButton("显示文件");
        btn.setBounds(100,120,100,30);
        jf.add(btn);
        //添加监听事件
        btn.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                String path=txt.getText();
                File f=new File(path);
                Test51.show(f);
            }
        });
        JButton btncount=new JButton("统计个数");
        btncount.setBounds(230,120,100,30);
        jf.add(btncount);
        jf.setVisible(true);
        btncount.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                System.out.println("一共有"+count+"个java文件");
            }
        });
    }

    public static void show(File ff){
        boolean iden=ff.isFile();
        if(iden){//是文件
            String path=ff.getPath();
            String name=ff.getName();
            //获取某一个字符的下标
            int index=name.indexOf(".");
            //截取字符串
            String diff=name.substring(index+1);
            if(diff.equals("java")){
                count++;
            System.out.println("文件名:"+name+"路径名:"+diff);
            }
        }else{//是文件夹
            File []arr=ff.listFiles();
            if(arr!=null){
                for(int i=0;i<arr.length;i++){
                    File file=arr[i];
                    show(file);
                }
            }

        }
    }
}


程序要求:遍历自己电脑中所有磁盘中的MP4文件(或txt文件),并统计他们的数量
//遍历电脑所有磁盘的MP4文件
import java.io.File;
public class Test6{
    public static int sum=0;
    public static void main(String []args){
        File []pan=File.listRoots();
        int len=pan.length;
        for(int i=0;i<len;i++){
            File f=pan[i];
            String path=f.getPath();
            //打印输出电脑中的所有磁盘
            System.out.println(path);
            Test6.show(f);
        }
        System.out.println("该电脑中一共有"+sum+"个mp4文件");
    }
    public static void show(File ff){
        boolean iden=ff.isDirectory();
        if(iden){
            File []arr=ff.listFiles();
            if(arr!=null){
                for(int i=0;i<arr.length;i++){
                    File file=arr[i];
                    show(file);
                }
            }
        }else{
            String name=ff.getName();
            String path=ff.getPath();
            int index=name.indexOf(".");
            //截取字符串,从下标index+1开始直到结束
            String str=name.substring(index+1);
            if(str.equals("mp4")){
                sum++;
            System.out.println("文件名:"+name+"文件路径名:"+path);  
            }           
        }
    } 
}

程序:用GUI+AWT+IO文件输出流,在文本中输入文字保存到指定磁盘e:/a.txt
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Test1{
    public static void main(String []args){
        JFrame jf=new JFrame();
        jf.setTitle("记事文本");
        jf.setLayout(null);
        jf.setLocationRelativeTo(null);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.setSize(500,400);
        JLabel lab=new JLabel("请你在下面文本框中输入内容:");
        lab.setBounds(10,10,200,20);
        jf.add(lab);

        JTextArea txt=new JTextArea();
        txt.setBounds(20,40,300,300);
        txt.requestFocus();
        txt.setLineWrap(true);        //激活自动换行功能 
        txt.setWrapStyleWord(true);  
        jf.add(txt);
        JButton btn=new JButton("保存");
        btn.setBounds(350,70,70,30);
        jf.add(btn);
        btn.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                try{
                    File f=new File("e:/a.txt");
                    if(!f.exists()){
                        f.createNewFile();
                    }
                    FileOutputStream out=new FileOutputStream(f);
                    String wenben=txt.getText();
                    byte []bs=wenben.getBytes();
                    out.write(bs);
                    out.close();
                }catch(IOException ex){
                    System.out.println("异常信息"+ex.getMessage());
                    ex.printStackTrace();
                }

            }
        });
        jf.setVisible(true);
    }
}

程序:文件输入流:程序读文件到控制台
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Scanner;
public class Test2{
    public static void main(String []args){
        Scanner sca=new Scanner(System.in);
        System.out.println("请输入您要读取文件的路径:");
        String path=sca.next();
        try{
            File f=new File(path);
            FileInputStream in=new FileInputStream(f);
            int size=in.available();
            byte []arr=new byte[size];
            in.read(arr);
            String str=new String(arr);
            System.out.println(str);
            in.close();
        }catch(IOException ex){
            System.out.println("");
        }

    }
}

//从一个磁盘复制文件粘贴到另一个磁盘
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Scanner;
public class Test3{
    public static void main(String []args){
        try{
            Scanner sca=new Scanner(System.in);
            System.out.println("请输入你要复制的路径:");
            String path1=sca.next();
            File f1=new File(path1);
            System.out.println("请输入你要粘贴的路径:");
            String path2=sca.next();
            File f2=new File(path2);
            FileInputStream in=new FileInputStream(f1);
            int size=in.available();
            byte []arr=new byte[size];
            in.read(arr);
            FileOutputStream out=new FileOutputStream(f2);
            out.write(arr);
            in.close();
            out.close();
        }catch(IOException ex){

        }

    }
}


//从一个磁盘复制一个文件,剪切到另一个磁盘
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Scanner;
public class Test4{
    public static void main(String []args){
        try{
            Scanner sca=new Scanner(System.in);
            System.out.println("请输入你要复制的路径:");
            String path1=sca.next();
            File f1=new File(path1);
            System.out.println("请输入你要粘贴的路径:");
            String path2=sca.next();
            File f2=new File(path2);
            FileInputStream in=new FileInputStream(f1);
            int size=in.available();
            byte []arr=new byte[size];
            in.read(arr);
            FileOutputStream out=new FileOutputStream(f2);
            out.write(arr);
            in.close();//必须先关闭流文件在删除流文件
            boolean iden=f1.delete();
            if(iden){
                System.out.println("删除成功");
            }else{
                System.out.println("删除失败");
            }

            out.close();
        }catch(IOException ex){

        }

    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值