java本地文件操作


学而不思则罔,思而不学则殆。


java本地文件操作

一、File类的简介

package file;
import java.io.File;
public class HelloFile {
    public static void main(String[] args) {
        //创建文件对象
        File file = new File("hello.txt");
        //判断文件 ,返回布尔
        file.isFile();
        System.out.println(file.isFile());
        //路径(文件夹)
        file.isDirectory();
        System.out.println(file.isDirectory());
    }
}

运行结果:

false
false

二、文件的创建、删除、重命名

public class HelloFile {
    public static void main(String[] args) {
        //创建文件对象
        File file = new File("hello.txt");
        //hello.txt会存在于当前目录
        //相对路径格式:xxx//hello.txt
        //绝对路径格式:D://AAA//BBB//hello.txt
        //"../hello.txt" 表示上一级文件结构
        //是否存在
        if(file.exists()){
        //文件
        System.out.println(file.isFile());
        //路径(文件夹)
        System.out.println(file.isDirectory());
        //重命名
        //文件结构必须处于同一个分区
        //文件处于不同的分区,需要使用文件的拷贝,而不是重命名
//        File nameto = new File("src/new Hello.txt");
//        file.renameTo(nameto);
        //文件删除
//        file.delete();
//        System.out.println("文件删除成功");
        }else {
            System.out.println("文件不存在");
            //创建文件
            try {
                file.createNewFile();
                System.out.println("文件已经成功创建");
            } catch (IOException e) {
                System.out.println("文件无法创建");
            }
        }

    }

}

三、文件夹的创建、重命名、删除

//文件夹的创建、重命名、删除
public class HelloFile {

    public static void main(String[] args) {

       //文件夹的创建
        File folder = new File("my new folder");
        folder.mkdir();
        System.out.println("文件夹创建完成");

       //关于folder.mkdir(),返回一个布尔类型
        if(folder.mkdir()){
            System.out.println("文件夹创建完成");
        }else{
            if(folder.exists()){
                System.out.println("文件夹已经存在不用创建了");
            }else{
                System.out.println("文件夹创建失败");
            }
        }

        //文件夹的重命名
        File folder = new File("my new folder");
        File newfolder = new File("my new folder-new");
        if(folder.renameTo(newfolder)){//返回值布尔类型
            System.out.println("done");
        }else{
            System.out.println("fail");
        }

       //文件夹的删除
        File folder = new File("my new folder/two");
        folder.delete();//返回值布尔类型
        //被删除的文件夹必须为空才会删除成功
        if(folder.delete()){
            System.out.println("done");
        }else{
            System.out.println("fail");
        }
    }
}

四、文件属性的读取

public class HelloFile {

    public static void main(String[] args) {
        //文件属性的读取
        File file = new File("text.txt");
        //判断文件是否存在
        System.out.println("判断文件是否存在"+file.exists());
        //读取文件名称
        System.out.println("读取文件名称"+file.getName());
        //读取文件路径
        System.out.println("读取文件路径"+file.getPath());
        //读取文件绝对路径
        System.out.println("读取文件绝对路径"+file.getAbsolutePath());
        //获取文件父级路径
        System.out.println("获取文件父级路径"+new File(file.getAbsolutePath()).getParent());
        //读取文件大小
        System.out.println("读取文件大小"+file.length()+"byte");//字节
        System.out.println("读取文件大小"+(float)file.length()/1000+"KB");
        //判断文件是否被隐藏
        System.out.println("判断文件是否被隐藏"+file.isHidden());
        //判断文件是否可读
        System.out.println("判断文件是否可读"+file.canRead());
        //判断文件是否可写
        System.out.println("判断文件是否可写"+file.canWrite());
        //判断文件是否为文件夹
        System.out.println("判断文件是否为文件夹"+file.isDirectory());
    }

五、文件属性的设置

public class HelloFile {
    public static void main(String[] args) {
        //文件属性的设置
        File file = new File("text.txt");
        if (file.exists()){
            //将文件设定为可写
            file.setWritable(true);
            file.setWritable(false);
            //将文件设定为可读
            file.setReadable(false);
            file.setReadable(true);
            //将文件设定为只读
            file.setReadOnly();

    }

六、遍历文件夹

//遍历文件夹
public static void printFiles(File dir){
    printFiles(new File("绝对路径"));
    if (dir.isDirectory()) {
        File next[] = dir.listFiles();//listFiles()返回一个数组
        for(int i= 0;i<next.length;i++){
            System.out.println(next[i].getName());
            if(next[i].isDirectory()){
                printFiles(next[i]);
            }
        }
    }
}

七、文件的简单读写

package file;
import java.io.File;
import java.io.IOException;
public class HelloFile {
    public static void main(String[] args) {
     File file = new File("test.txt");
    if(file.exists()){
        System.err.println("exist");
        try{
            FileInputStream fis = new FileInputStream(file);
            InputStreamReader isr = new InputStreamReader(fis,"UTF-8");
            BufferedReader br = new InputStreamReader(isr);
            String line;
            while(line = br.readLine() != NUll){
                System.out.println(line);
            }
            br.close();
            isr.close();
            fis.close();


        }catch (FileNotFoundException e) {
        }catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }catch (Exception e) {
        }


    }
    }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏逆向技术

16位汇编第五讲各种指令详解第一讲

汇编指令详解 8080指令详解 1.8086系统下,Inter指令系统共有117条指令(看似很多,分一下类) 1.数据传送类指令(专门传送数据的) 2.算术运算...

2015
来自专栏技术碎碎念

sql server 2008 操作数据表

SQL Server表 表的类型: ①临时表 临时表可用来处理中间数据或者用临时表 与其它连接共享进行中的工作。临时表只 能放在tempdb中。 私有临时表(#...

3955
来自专栏黑泽君的专栏

c语言基础学习10_文件操作01

============================================================================= ==...

2593
来自专栏企鹅号快讯

再见乱码:5 分钟读懂 MySQL 字符集设置

作者: 程序猿小卡_casper 原文:https://segmentfault.com/a/1190000012775484 一、内容概述 在MySQL的使用...

2158
来自专栏Petrichor的专栏

tensorflow: 对variable_scope进行reuse的两种方法

在tensorflow中,为了 节约变量存储空间 ,我们常常需要通过共享 变量作用域(variable_scope) 来实现 共享变量 。

2.4K6
来自专栏java相关

线程安全问题分析

计算机系统资源分配的单位为进程,同一个进程中允许多个线程并发执行,并且多个线程会共享进程范围内的资源:例如内存地址。当多个线程并发访问同一个内存地址并且内存地址...

992
来自专栏运维一切

marathon constraints 的花式用法

这个用法有个坏处,就是你设置应用启动方式的时候要注意,如果你仅仅这样设置,你的应用是无法进行重启的

1233
来自专栏草根专栏

使用ASP.NET Core开发GraphQL服务器 -- 预备知识(下)

我想查看viewer下的repositories。注意里面的edges,一旦看到这个词,通常就表示有连接到某个数组的数据。在这里就是一个集合的repositor...

912
来自专栏郭少华

Spring boot Mybatis-XML方式通用Mapper插件之MyBatis Geneator详解(六)

Github地址:https://github.com/AlanWalkerGuo/GeneratorMapper

2373
来自专栏黑泽君的专栏

c语言基础学习10_文件操作02

============================================================================= ==...

3391

扫码关注云+社区

领取腾讯云代金券