File类

新建文件
/* 下面是在当前文件目录下(即工程根目录下)创建hello.txt文件 */
File file = new File('hello.txt');
判断是文件还是目录
file.isFile() /* file是文件 */
file.isDirectory()  /* file是目录 */
判断文件是否存在
file.exsits()
文件的 创建删除重命名

针对文件的重命名:新建文件2,将文件1的文件名重命名为文件2的文件名,可达到文件移动的目的

注意:对于文件的移动,文件必须处于同一分区,例如某文件在C盘中移动,而不能从C盘移动到D盘。如果要移动到不同的分区,需要使用文件的拷贝,而不是重命名。

file.createNewFile(); /* 创建文件 */
file.delete(); /* 删除文件 */
File nameTo = new File("new hello.txt");
file.renameTo(nameTo); /* 将file文件重命名 */

file类既可以表示文件也可以表示文件夹

/* 创建一个文件对象 */
File folder = new File("my folder");
/* 创建一个文件夹 */
folder.mkdir(); /* 返回true 代表文件创建成功 返回false 代表文件创建失败 */
folder.mkdirs();

mkdir和mkdirs的区别:
    mkdir:只能创建一级文件夹,上级文件夹必须存在
    mkdirs:能够创建多级文件夹,不要求上级文件夹必须存在

文件夹的重命名:文件夹的重命名必须处于同一分区当中
File folder = new File("my new folder");
File newFolder = new File("my new folder-new");
folder.renameTo(newFolder);
文件夹的删除:delete只能删除空文件夹
File folder = new File("my new folder-new/one/two/three");
folder.delete() /* 返回true 删除成功 返回false 删除失败 */
文件属性的读取
File file = new File("test.txt");
// 判断文件是否存在
file.exsits()
// 读取文件名称
file.getName()
// 读取文件路径
file.getPath()
// 读取文件绝对路径
file.getAbsolutePath()
// 读取文件父级路径(file是相对路径,如何利用相对路径获取其上一级路径呢?)
new FIle(file.getAbsolutePath()).getParent()
// 读取文件大小(file.length()方法的返回是按照字节来返回的,,返回类型是long类型)
// 在硬盘上,字节转化为KB是除以1000
(long)file.length()/1000 + "KB"
// 判断文件是否被隐藏
file.isHidden();
// 判断文件是否可读
file.canRead();
// 判断文件是否可写
file.canWrite();
// 判断文件是否为文件夹
file.isDirectory();
文件属性的设置
// 将文件设定为可写(传入参数:true 设定为可写,false 设定为不可写)
file.setWritable(true);
// 将文件设定为可读(传入参数:true 设定为只读,false 设定为不可读)
file.setReadable(true);
// 将文件设定为只读
file.setReadOnly();
遍历文件夹
public class OutputDirectory {
  public static void main(String[] args) {
    printFiles(new File("my new folder-new/one/two/three"), 1);
  }
  public static void pritFiles(File dir, int tab) {
    if(dir.isDirectory()) {
      // 包含当前目录当中所有的子文件夹和子文件
      File next[] = dir.listFIles();
      for(int i = 0; i < next.length(); i++) {
        for(int j = 0; j < tab; j++) {
          System.out.print("|--");  
        }
        System.out.println( next[i].getName());
        if(next[i].isDirectory()) {
          printFIles(next[i], tab++);
        }
      }
    }
  }
}
文件的简单读写
public class ReadFile {
    public static void main(String[] args) {
        File file = new File("test.txt");
        if (file.isExits()) {
            System.out.println("file is exist");
            try {
                // 1、创建文件输入流 获取文件输入流
                FileInputStream fis = new FileInputStream(file);
                // 2、将输入流包装成InputStreamReader
                // fis是一个字节流,isr是一个字符流,在进行转换时容易出现乱码,所有需要添加utf-8编码,防止乱码的出现
                InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
                // 3、创建一个带有 缓冲区 的reader
                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 (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            
        }
        try {
            File newFile = new File("newtext.txt");
            FileOutputStream fos = new FileOutputStream(newFile);
            OutputStreamWriter osw = new OutputStreamWriter(fos, "utf-8");
            BufferedWriter bw = new BufferedWriter(osw);
            
            bw.write("我正在写出文件内容至文件当中\n");
            bw.writer("我正在书写内容\n");
            
            // 关闭输出流, 先打开的后关闭,后打开的先关闭
            fos.close();
            osw.close();
            bw.close();
        } catch(FileNotFoundException e) {
            e.printStackTrace();
        } catch(UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容