iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >浅谈Java中File文件的创建以及读写
  • 340
分享到

浅谈Java中File文件的创建以及读写

2024-04-02 19:04:59 340人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录1.创建一个文件2.创建一个文件夹3.创建同目录下文件4.删除文件或空文件夹5.递归删除所有文件(包括子文件)6.读取txt文件内容,流操作要用try-catch(字符流)7.读

1.创建一个文件


 @Test
    public void test6() throws ioException {
        File file1 = new File("C:\\idea\\h1.txt");
        if(!file1.exists()){//文件不存在
            file1.createNewFile();
            System.out.println("创建成功");
        }else{//文件存在
            file1.delete();
            System.out.println("删除成功");
        }
    }

输出

2.创建一个文件夹

file.mkdir,不会帮你创建上层目录 file.mkdirs,会帮你创建上层目录


@Test
    public void test7(){
        //创建文件夹,mkdir,不会帮你创建上层目录
        File file1 = new File("c:\\IDEA\\io2");
        boolean mkdir =file1.mkdir();
        if(mkdir){
            System.out.println("创建成功1");
        }
 
        //创建文件夹,mkdirs,会帮你创建上层目录
        File file2 = new File("c:\\IDEA\\io1\\io3");
        boolean mkdirs =file2.mkdirs();
        if(mkdirs){
            System.out.println("创建成功2");
        }
    }

输出

3.创建同目录下文件

4.删除文件或空文件夹


@Test
    public void test8(){
        //删除文件或空文件夹
        File file1 = new File("c:\\IDEA\\h1.txt");
 
        file1.delete();
    }

5.递归删除所有文件(包括子文件)


//递归函数删除所有文件
    private boolean deletedir(File dir){
        if (dir.isDirectory()) {
          File[] files =  dir.listFiles();
            //递归删除目录中的子目录下
            for (File f:files) {
                boolean success = deletedir(f);
                if (!success) {
                    return false;
                }
            }
        }
        // 目录此时为空,可以删除
        return dir.delete();
    }
 
    @Test
    public  void test8() {
        File dir = new File("c:\\IDEA");
        System.out.println(deletedir(dir));
 
    }

1.对于文本文件(.txt,.java,.c,.cpp),使用字符流处理

2.对于非文本文件(.jpg,.mp3,.mp4,.avi,.doc,.ppt)使用字节流处理

6.读取txt文件内容,流操作要用try-catch(字符流)


@Test
        public void test9() {
            FileReader fr = null;//自动补的
            try {
                //1.实例化File类的对象,指明要操作的文件
                File file1  = new File("c:\\IDEA\\hello.txt");
                file1.createNewFile();//要抛出异常
                //2.提供具体的流
                fr = new FileReader(file1);
                //3.数据的读入
                //read():返回读入的一个字符,如果达到文件末尾,返回-1
                int data = fr.read();
                while(data!=-1){
                    System.out.print((char)data);
                    data  = fr.read();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                try {
                    //4.流的关闭操作
                    if(fr!=null)//防止没有实例化成功,避免空指针异常
                        fr.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
 
            }

要记得关闭,因为物理连接JVM垃圾回收机制不会自动回收,要手动关闭。

7.读取文件内容升级方法(字符流)


@Test
    public void test1() {
        FileReader fr = null;
        try {
            //1.File类的实例化
            File file = new File("hello.txt");
 
            //2.FileReader流的实例化
            fr = new FileReader(file);
 
            //3.读入的操作
            //read(char[] cbuf):返回每次读入cbuf数组中的字符的个数。如果达到文件末尾,返回-1
            char[] cbuf = new char[5];
            int len;
            while ((len = fr.read(cbuf)) != -1) {
                //错误的写法
                //for(int i=0;i<cbuf.length;i++{
                // System.out.println(cbuf[i]);
                //}
 
                //正确的写法
                for (int i = 0; i < len; i++) {
                    System.out.println(cbuf[i]);
                }
                
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (fr != null)
                try {
                    //4.资源的关闭
                    fr.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
        }
 
 
    }

 

8.文件的写入(字符流)


@Test
    public void test2() throws IOException{
        //File对应的硬盘中的文件
        // 如果不存在,在输出的过程中,会自动创建此文件
        //1.提供File类的对象,指明写出到的文件
        FileWriter fw = null;
        try {
            File file =  new File("hello.txt");
 
            //2.提供FileWriter的对象,用于数据的写出
            //FileWriter(file,append)第二个参数,append是true则在后面添加,是false就覆盖
            fw = new FileWriter(file,true);
 
            //3.写出的操作
            fw.write("I have a dream!");
            fw.write("you need have a dream");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if(fw!=null)
                //4.流资源的关闭
                fw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
 
 
 
 
    }

9.从一个文件读取然后写入到另一个文件(字符流)


@Test
    public void test3(){
        FileReader fr = null;
        FileWriter fw = null;
        try {
            // 1.创建File类的对象,指明读入和写出的文件
            File src = new File("hello.txt");
            File des = new File("hello1.txt");
 
            // 2.创建输入输出流的对象
            fr = new FileReader(src);
            fw = new FileWriter(des,true);//不覆盖
            // 3.数据的读入和写出操作
            char[] cbuf = new char[5];
            int len;
            while((len = fr.read(cbuf))!=-1){
                //每次写出len个字符
                fw.write(cbuf,0,len);//从cbuf的0号位开始写入len个字符
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
 
            try {
                // 4.关闭流资源1
                fw.close();
 
            } catch (IOException e) {
                e.printStackTrace();
            }
 
            try {
                // 4.关闭流资源2
                fr.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
 
    }

 

10.从一个文件读取然后写入到另一个文件(字节流图片)


@Test
    public void test4(){
        FileInputStream  fis=null;
        FileOutputStream  fos=null;
        try {
            //1.造文件
            File src = new File("b.jpg");
            File des = new File("c.jpg");
            //2.造流
            fis = new FileInputStream(src);
            fos = new FileOutputStream(des);
 
            //3.读数据,存数据
            byte[] buffer = new byte[5];
            int len;//记录每次读取的字节的个数
            while((len = fis.read(buffer))!=-1){
                fos.write(buffer,0,len);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if(fos!=null) {
                try {
                    //4.关闭资源
                    fos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if(fis!=null) {
                try {
                    //4.关闭资源
                    fis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
 
 
 
    }

 

11.缓冲流(开发时使用速度更快,效率更高)


@Test
    public void test5(){
        BufferedInputStream bis = null;
        BufferedOutputStream bos = null;
        try {
            //1.造文件
            File src = new File("b.jpg");
            File des = new File("d.jpg");
            //2.造流
            //2.1造节点流
            FileInputStream fis = new FileInputStream(src);
            FileOutputStream fos = new FileOutputStream(des);
            //2.2造缓冲流
            bis = new BufferedInputStream(fis);
            bos = new BufferedOutputStream(fos);
 
 
            //3.复制的细节:读取,写入
            byte[] buffer =new byte[10];
            int len;
            while((len=bis.read(buffer))!=-1){
                bos.write(buffer,0,len);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
 
            //4.资源关闭
            //要求,先关闭外层的流,再关闭内层的流
            if(bos!=null){
                try {
                    bos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
 
            if(bis!=null){
                try {
                    bis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            //说明:关闭外层流的同时,内层自动关闭,所以外层关闭可以省略
            //fos.close();
            //fis.close();
        }
 
 
 
 
     }

 

用缓冲流快了很多

 

经典步骤:

1.创建File类的对象,指明读入和写出的文件

2.创建输入输出流的对象

3.数据的读入和写出操作

4.关闭流资源

到此这篇关于浅谈Java中File文件的创建以及读写的文章就介绍到这了,更多相关Java中File文件的创建及读写内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 浅谈Java中File文件的创建以及读写

本文链接: https://www.lsjlt.com/news/125762.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 浅谈Java中File文件的创建以及读写
    目录1.创建一个文件2.创建一个文件夹3.创建同目录下文件4.删除文件或空文件夹5.递归删除所有文件(包括子文件)6.读取txt文件内容,流操作要用try-catch(字符流)7.读...
    99+
    2024-04-02
  • 如何在Java中创建和读写File文件
    本篇文章为大家展示了如何在Java中创建和读写File文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。创建一个文件 @Test    public...
    99+
    2023-06-15
  • GO文件创建及读写操作的方法
    本文小编为大家详细介绍“GO文件创建及读写操作的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“GO文件创建及读写操作的方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。三种文件操作比较ioutilbufio...
    99+
    2023-06-30
  • 浅谈laravel中间件的创建思路
    Laravel 中间件提供了一种机制在不修改逻辑代码的情况下,中断原本程序流程,通过中间件来处理一些事件,或者扩展一些功能。比如日志中间件可以方便的记录请求和响应日志,而不需要去更改...
    99+
    2024-04-02
  • 浅谈java中==以及equals方法的用法
    equals 方法是 java.lang.Object 类的方法。有两种用法说明:(1)对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同。“==”比较两个变量本身的值,即两个对象在内存中的首地址。“eq...
    99+
    2023-05-30
    java equals方法 ava
  • Java中怎么使用file创建文件
    在Java中,可以使用File类来创建文件。以下是一个示例:```javaimport java.io.File;import ja...
    99+
    2023-09-29
    Java
  • GO文件创建及读写操作示例详解
    目录三种文件操作比较ioutilioutil.ReadFile读ioutil.WriteFile 写ioutil.ReadAll 读ioutil.ReadDir 查看路径下目录信息i...
    99+
    2024-04-02
  • python中文件的读取与写入以及os模
    1.文件读取的三部曲:打开 ---> 操作 ----> 关闭 r(默认参数):-只能读,不能写-读取文件不存在 会报错FileNotFoundError: [Errno 2] No such file or directory:...
    99+
    2023-01-31
    文件 python os
  • Java对文件的写入和读取 (File类详解以及Input,OutputStream用法,注意事项)
    Java中,操作文件的类有很多, 核心的部分是File类,InputStream,OutputStream类 文章目录 File类通过File类创建文件通过File类创建目录 文件内容的读写 -- 数据流InputStream方...
    99+
    2023-08-18
    java jvm 开发语言
  • 一文搞懂Go语言中文件的读写与创建
    目录1. 文件的打开与关闭1.1 os.open1.2 os.OpenFile() 指定模式打开文件2. 文件的读取2.1 打开文件的方式读取文件中的数据2.2 使用 bufio 整...
    99+
    2024-04-02
  • 浅谈一下Java中的访问修饰符以及作用
    目录publicprotecteddefaultprivate总结:Java 中的访问修饰符用于限制类、接口、字段和方法的访问范围,它们分别表示不同的访问控制级别。Java 中共有四...
    99+
    2023-05-19
    Java 修饰符 Java 访问修饰符
  • Java利用File类创建文件的示例代码
    只需要调用该类的一个方法createNewFile(),但是在实际操作中需要注意一些事项,如判断文件是否存在,以及如何向新建文件中写入数据等。 import java.io.*; p...
    99+
    2024-04-02
  • C#中File静态类对文件的读取写入
    提供用于创建、复制、删除、移动和打开单一文件的静态方法,并协助创建 FileStream 对象。 一、读文件: 1、返回字符串: string readText ...
    99+
    2024-04-02
  • Java中创建并写文件的方式有几种
    这篇文章主要讲解了“Java中创建并写文件的方式有几种”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中创建并写文件的方式有几种”吧!在java中有很多的方法可以创建文件写文件,你是否...
    99+
    2023-06-16
  • Java读取resources中资源文件路径以及jar中文件无法读取的解决
    目录Java读取resources中资源文件路径以及jar中文件无法读取的解决问题描述前言1、本地运行读取资源文件2、读取jar包中的文件信息聊聊Java项目读取resources资...
    99+
    2023-05-20
    Java读取resources Java读取resources文件路径 jar文件无法读取
  • 浅谈java中null是什么,以及使用中要注意的事项
    1.null既不是对象也不是一种类型,它仅是一种特殊的值,你可以将其赋予任何引用类型,你也可以将null转化成任何类型,例如:Integer i=null;Float f=null;String s=null;但是不能把null赋值给基本类...
    99+
    2023-05-31
    java null ava
  • 总结Java中创建并写文件的5种方式
    1. 使用FileOutputStream类:通过创建一个FileOutputStream对象来写入文件。可以使用该类的write(...
    99+
    2023-09-22
    Java
  • java创建写入文件的方式有哪些
    本篇内容主要讲解“java创建写入文件的方式有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java创建写入文件的方式有哪些”吧!在本文中大量的使用到了try-with-resources语...
    99+
    2023-07-04
  • Java读取resources中资源文件路径以及jar中文件无法读取如何解决
    今天小编给大家分享的是Java读取resources中资源文件路径以及jar中文件无法读取如何解决,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。Java读取resources中资源文...
    99+
    2023-07-06
  • python中csv文件创建、读取及修改等操作实例
    1. python中创建新的csv文件 (1). 使用csv.writer()创建: 代码如下: import csv headers = ['学号','姓名','分数'] ro...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作