java中的文件操作总结(干货)

 更新时间:2017年02月13日 11:52:24   作者:coder_elijah  
本篇文章主要介绍了java中的文件操作总结(干货),主要有文件读写,遍历文件夹,文件夹操作等,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

File类简介

package com.file;

import java.io.File;
import java.io.IOException;

/**
 * Created by elijahliu on 2017/2/10.
 */
public class filetest {
  public static void main(String[] args) {
    File file = new File("hello.txt");
    //是否存在
    if (file.exists()) {
      //文件
      System.out.println(file.isFile());
      //路径(文件夹)
      System.out.println(file.isDirectory());

      File nameto = new File("new Hello.txt");
      file.renameTo(nameto);//这里就是重命名文件的操作,直接新建一个file对象然后使用renameTo方法可以重命名文件

    } else {
      System.out.println("文件不存在");
      try {
        file.createNewFile();
        System.out.println("文件已被创建");
      } catch (IOException e) {
        System.out.println("文件无法创建");
      }
    }
    if (file.exists()) {
      //删除文件
      file.delete();
      System.out.println("删除文件");
    } else {
    }
  }
}

文件夹操作

package com.file;

import java.io.File;

/**
 * Created by elijahliu on 2017/2/11.
 */
public class HelloFolder {
  public static void main(String[] args) {
    File folder = new File("my new folder");
    if (folder.mkdir()) {//创建文件夹 判断是否成功
      System.out.println("文件夹创建完成");
      File newfolder = new File("myn new foleder - new");
      folder.renameTo(newfolder);//这里重命名了文件夹 文件夹的重命名是可以单独更改一级的文件夹名的 而这一级下面的文件夹不变 保存目录结构
      if (folder.delete()) {
        System.out.print("done");//这里的删除只能删除空文件夹,如果文件夹中有东西,那么则不能删除,不问三七二十一直接删除一个非空文件夹是非常不负责任的
      } else {
        System.out.println("fail");
      }

    }else{
      if (folder.exists()) {
        System.out.println("文件夹已经存在不用创建");
      }else{
        System.out.println("文件夹创建失败");
      }
    }
    File folders = new File("my new folder/one/two/three/main");
    folders.mkdirs();//在java中用mkdir只能创建一个,mkdirs可以创建多级目录

  }
}

文件属性设置

package com.file;

import java.io.File;

/**
 * Created by elijahliu on 2017/2/11.
 */
public class SetFileProperty {
  public static void main(String[] args){
    File file = new File("test.file");
    if (file.exists()){
      file.setWritable(true);//可写
      file.setReadable(true);//可读
      file.setReadOnly();//只读
    }
  }
}

遍历文件夹

  public void printFiles(File dir,int tab) {//tab为不同目录结构的缩进量
    if (dir.isDirectory()) {
      File next[] = dir.listFiles();//判断如果是目录 则返回目录所有的文件名数组用于遍历文件夹
      for (int i = 0;i<next.length;i++) {//层次缩进输出
        System.out.print("---");
      }
      for(int i = 0;i<next.length;i++) {//这里用了递归获取目录结构
        System.out.println(next[i].getName());
        if (next[i].isFile()) {
          printFiles(next[i],++tab);

        }
      }
    }
  }

文件简单读写

package com.file;

import java.io.*;

/**
 * Created by elijahliu on 2017/2/11.
 */
public class ReadFile {
  public static void main(String[] args) {
    File file = new File("new Hello.txt");
    if(file.exists()){
      System.err.print("exsit");
      try (FileInputStream fis = new FileInputStream(file)) {//文件输入流 这是字节流

        InputStreamReader isr = new InputStreamReader(fis,"UTF-8");//inputstreamReader是一个字节流,将字节流和字符流转化的时候,就需要制定一个编码方式,不然就会乱码
        BufferedReader br = new BufferedReader(isr);//字符缓冲区

        String line;
        while((line = br.readLine())!=null){//这里将缓冲区里的内容如果非空就读出来打印
          System.out.println(line);

        }
        br.close();//最后将各个线程关闭
        isr.close();
        fis.close();
      } catch (FileNotFoundException e) {
        e.printStackTrace();
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
    File newfile = new File("newtext.txt");
    try {
      FileOutputStream fos = new FileOutputStream(newfile);//这里如果文件不存在会自动创建文件
      OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");//和读取一样这里是转化的是字节和字符流
      BufferedWriter bw = new BufferedWriter(osw);//这里是写入缓冲区

      bw.write("厉害了我的哥");//写入字符串

      bw.close();//和上面一样 这里后打开的先关闭 先打开的后关闭
      osw.close();
      fos.close();
      System.out.println("done");
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }

  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java由浅入深带你精通继承super

    Java由浅入深带你精通继承super

    继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为
    2022-03-03
  • idea 离线安装lombok插件的方法步骤(图文)

    idea 离线安装lombok插件的方法步骤(图文)

    这篇文章主要介绍了idea 离线安装lombok插件的方法步骤(图文),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Java clone方法详解及简单实例

    Java clone方法详解及简单实例

    这篇文章主要介绍了 Java clone方法详解及简单实例的相关资料,需要的朋友可以参考下
    2017-03-03
  • Spring refresh()源码解析

    Spring refresh()源码解析

    这篇文章主要为大家介绍了Spring refresh()源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 如何在不使用spring框架中使用aop的功能

    如何在不使用spring框架中使用aop的功能

    这篇文章主要介绍了如何在不使用spring框架中使用aop的功能,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • java项目中使用 Lombok遇到的问题小结

    java项目中使用 Lombok遇到的问题小结

    这篇文章主要介绍了java项目中使用 Lombok遇到的问题小结,需要的朋友可以参考下
    2018-07-07
  • 深入理解Java中的SPI机制

    深入理解Java中的SPI机制

    这篇文章主要介绍了深入理解Java中的SPI机制,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-02-02
  • 10中java常见字符串操作实例

    10中java常见字符串操作实例

    给大家分享10中java常见字符串操作方法以及相关实例代码,对此有需要的读者们可以学习参考下。
    2019-07-07
  • JSP 开发之 releaseSession的实例详解

    JSP 开发之 releaseSession的实例详解

    这篇文章主要介绍了JSP 开发之 releaseSession的实例详解的相关资料,需要的朋友可以参考下
    2017-07-07
  • 关于SpringCloud灰度发布的实现

    关于SpringCloud灰度发布的实现

    这篇文章主要介绍了关于SpringCloud灰度发布的实现,灰度发布又称金丝雀发布,是在系统升级的时候能够平滑过渡的一种发布方式,灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度,需要的朋友可以参考下
    2023-08-08

最新评论