文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何在Java中创建和读写File文件

2023-06-15 01:54

关注

本篇文章为大家展示了如何在Java中创建和读写File文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

创建一个文件

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

输出

如何在Java中创建和读写File文件

如何在Java中创建和读写File文件

 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");        }    }

输出

如何在Java中创建和读写File文件

如何在Java中创建和读写File文件

3.创建同目录下文件

如何在Java中创建和读写File文件

4.删除文件或空文件夹

@Test    public void test8(){        //删除文件或空文件夹        File file1 = new File("c:\\IDEA\\h2.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));     }

如何在Java中创建和读写File文件

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

对于非文本文件(.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();                }             }

如何在Java中创建和读写File文件

要记得关闭,因为物理连接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();                }        }      }

如何在Java中创建和读写File文件 

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();            }        }        }

如何在Java中创建和读写File文件

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();            }        }     }

如何在Java中创建和读写File文件 

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();                }            }        }       }

如何在Java中创建和读写File文件 

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();        }         }

如何在Java中创建和读写File文件 

用缓冲流快了很多

如何在Java中创建和读写File文件 

Java的优点是什么

1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. 面向对象;3. 分布性,Java是面向网络的语言;4. 鲁棒性,java提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。;5. 安全性,用于网络、分布环境下的Java必须防止病毒的入侵。6. 体系结构中立,只要安装了Java运行时系统,就可在任意处理器上运行。7. 可移植性,Java可以方便地移植到网络上的不同机器。8.解释执行,Java解释器直接对Java字节码进行解释执行。

上述内容就是如何在Java中创建和读写File文件,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯