• 技术文章 >Java >java教程

    详细介绍java中的文件操作总结

    黄舟黄舟2017-03-06 10:24:53原创590
    本篇文章主要介绍了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中的文件操作总结的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:java,文件操作
    上一篇:btrace定位生产故障的方法示例 下一篇:在Java中通过websocket实现消息推送的实现代码详解
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 一起聊聊Java中数组的定义和使用• JAVA接口与抽象类详细解析• Java实现多线程的四种方式• Java基础之volatile详解• Java中super关键字的用法详解
    1/1

    PHP中文网