Java基础知识十:File类及常用方法、递归、IO流介绍、字节流、字符流、IO流异常处理、

File类

1、File类的3个构造方法

326e1d02168b4b21ad29dfdadb0ec6eb.png 

//File三个构造方法
//实现的效果是一样的,推荐第一种
public class fileDemo1 {
   public static void main(String[] args) {
       File f1  = new File("d\\IDEA\\bin\\log.xml");
       System.out.println(f1);

       File f2  = new File("d\\IDEA\\bin","log.xml");
       System.out.println(f2);

       File f3  = new File("d\\IDEA\\bin");
       File f4 = new File(f3,"log.xml");
       System.out.println(f4);
   }
}

2、File的创建方法

89809a4e3c574e27882aa7cf159ed054.png 

//File的创建方法
public class fileDemo2 {
   public static void main(String[] args) throws IOException{
       //如果文件不存在就创建文件,并返回true
       //如果文件存在就不创建文件,并返回false
       File f1 = new File("f:\\test\\java.txt");
       System.out.println(f1.createNewFile());
       //如果目录不存在就创建文件,并返回true
       //如果目录存在就不创建文件,并返回false
       File f2 = new File("f:\\test\\JavaSE");
       System.out.println(f2.mkdir());
       //如果目录不存在就创建文件,并返回true
       //如果目录存在就不创建文件,并返回false
       File f3 = new File("f:\\test\\JavaEE\\HTML");
       System.out.println(f3.mkdirs());

   }

}

3、File类的删除方法

35e74fc8eec040e49d85109c3f28ef0e.png 

//file的删除方法delete(),可以删除文件、目录
public class fileDemo3 {
   public static void main(String[] args) throws IOException {
       File f1 = new File("f:\\test\\js.txt");
       System.out.println(f1.createNewFile());
       System.out.println(f1.delete());//删除文件

       File f2 = new File("f:\\JavaEE");
       System.out.println(f2.mkdir());
       System.out.println(f2.delete());//删除单层目录
   }
}

4、File类的判断和获取功能

5a86b00fd3744240aac679a71e60e932.png 

public class fileDemo4 {
   public static void main(String[] args) {
       File f1 = new File("f:\\test\\java.txt");
       System.out.println(f1.isDirectory());//是否为目录false
       System.out.println(f1.isFile());//是否为文件true
       System.out.println(f1.exists());//是否存在true
       System.out.println(f1.getAbsoluteFile());//返回绝对路径名
       System.out.println(f1.getPath());//返回f1对象中封装的路径
       System.out.println(f1.getName());//返回路径中文件的名称

       File f2 = new File("f:\\test\\JavaSE");
       //返回该目录下的文件、文件夹名称
       String[] str = f2.list();
       for(String strs: str){
           System.out.println(strs);
       }
       //返回该路径下文件、文件夹的绝对路径名称
       File[] files = f2.listFiles();
       for(File file: files){
           System.out.println(file);
       }
       //与上一个的区别就在于listFiles()下可以对内容做判断
       File[] file2 = f2.listFiles();
       for(File fi: file2){
           if(fi.isFile()){
               System.out.println(fi);
           }
       }
   }
}

5、递归:

eef7e60cd1d54f33a1b734871b867e62.png 

IO流

a3e32fcf85c248dbbefb35f21b4b4922.png 

InputStream(抽象类)是所有字节输入流的超类,OutputStream(抽象类)是所有字节输出流的超类

1、字节流写数据基本介绍

8bd6be83e156453d88ac3a15229261c6.png 

//FileOutPutStream字节输出流,写入字节内容到文件中
public class FileOutPutStreamDemo1 {
   public static void main(String[] args) throws IOException {
       //创建字节输出流对象
       FileOutputStream fos = new FileOutputStream("f:\\test\\java.txt");
       fos.write(97);//调用字节输出流方法写入内容
       fos.close();//关闭字节输出流通道
   }
}

2、字节流写数据的3种方式

47ee18f279fc44dba5834d3ca49c52a0.png 

//字节流写入数据的三种方式
public class FileOutPutStreamDemo2 {
   public static void main(String[] args) throws IOException {
       //创建一个字节输出流对象
       FileOutputStream fos = new FileOutputStream("F:\\test\\jsp.txt");
       //第一种:基本的写入数据
       fos.write(97);
       fos.write(98);
       fos.write(99);
       fos.write(100);
       fos.write(101);
       fos.write(102);
       //第二种:字节数组写入数据
        byte[] bys = {97,98,99,100,101,102};
        fos.write(bys);
       //第二种附加:String字符串的getBytes()也可以写入字节数组数据
       byte[] bytes = "abcdef".getBytes();
       fos.write(bytes);
       //第三种:字节数组写入数据,指定位置,指定长度
       byte[] bys1 = {97,98,99,100,101,102};
       fos.write(bys1,0,bys.length);
       fos.write(bys1,2,3);
       fos.close();
   }
}

3、字符输出流实现换行、实现文本追加

//实现文本换行
//实现文本追加
public class FileOutPutStreamDemo3 {
   public static void main(String[] args) throws IOException {
       /*

windows系统识别换行:\r  \n
         Linux系统识别换行:\n
         mac系统识别换行:\r
        */
      // FileOutputStream fos = new FileOutputStream("f:\\test\\ps.txt");
       //结果为true时,append追加内容到文件末尾
       FileOutputStream fos = new FileOutputStream("f:\\test\\ps.txt",true);
       for(int i=0;i<10;i++){
           fos.write("abcdefgh".getBytes());
           fos.write("\r\n".getBytes());
       }
           fos.close();
   }
}

4、IO字节流异常处理

96c17fffa9a74997b3b7f25c75107fff.png 

//IO字节流异常处理
public class FileOutPutStreamDemo4 {
   public static void main(String[] args) {
       FileOutputStream fos = null;
     try {
         fos = new FileOutputStream("f:\\test\\net.txt");
         fos.write("hello".getBytes());
     }catch(IOException e){
         e.printStackTrace();
       }finally{
         if(fos!=null){ //只有fos不等于null,才进行释放资源的操作
             try {
                 fos.close();
             } catch (IOException e) {
                 e.printStackTrace();
             }
         }
     }
   }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜀州凯哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值