iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java中File类和IO流的示例分析
  • 879
分享到

Java中File类和IO流的示例分析

2023-06-29 10:06:31 879人浏览 安东尼
摘要

这篇文章主要为大家展示了“Java中File类和io流的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中File类和IO流的示例分析”这篇文章吧。IO流:IO流概述:IO:输入/

这篇文章主要为大家展示了“Java中File类和io流的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中File类和IO流的示例分析”这篇文章吧。

    IO流:

    IO流概述:

    IO:输入/输出(Input/Output)

    :是一种抽象概念,是对数据传输的总称。也就是说数据在设备间的传输称为流,流的本质是数据传输IO流就是用来处理设备间数据传输问题的, 常见的应用:文件复制;文件上传;文件下载等等,总而言之,涉及到传输的,都涉及到流。

    IO流体系图:

    Java中File类和IO流的示例分析

    Java中File类和IO流的示例分析

    既然IO是涉及文件的操作,那么一定离不开文件操作的技术:

    File类:

    File 类是 java.io 包中唯一代表磁盘文件本身的对象。File 类定义了一些方法来操作文件,主要用来获取或处理与磁盘文件相关的信息,像文件名、 文件路径、访问权限和修改日期等,还可以浏览子目录层次结构。

    File 类表示处理文件和文件系统的相关信息。File 类不具有从文件读取信息和向文件写入信息的功能,它仅描述文件本身的属性。所以和IO搭配在一起进行读出和写入的操作。

    先看一张File类常用的方法总汇图:

    Java中File类和IO流的示例分析

    使用createNewFile()创建一个文件:

    public class test01 {    public static void main(String[] args) throws IOException {//先建立一个File对象,并传入路径        File file1 = new File("G://abc.txt");        //创建空文件,如果没有存在则新建一个,并且返回True,如果存在了就返回false        System.out.println(file1.createNewFile());   }

    如果执行后,该目录没有这个文件,那么会创建一个,并且返回true,如果已经存在了,就会返回false,代表创建失败。

    Java中File类和IO流的示例分析

    使用mkdir()创建一个目录:

    File file2 = new File("G://a");System.out.println(file2.mkdir());   //创建一个目录,如果没有存在则新建一个,并且返回True,如果存在了就返回false

    使用mkdirs()创建多级目录:

    File file3 = new File("G://a//b//c");        System.out.println(file3.mkdirs());   //创建多级目录,如果没有存在则新建一个,并且返回True,如果存在了就返回false

    Java中File类和IO流的示例分析

    接着我们需要使用IO流里面的功能对文件进行输入和输出:

    先介绍四个常用的流:

    • 字节输入流:InputStream

    • 字节输出流:OutputStream

    • 字符输入流:Reader

    • 字符输出流:Writer

    为什么会有字节和字符两种流呢?

    ASCII 码中,一个英文字母(不分大小写)为一个字节,一个中文汉字为两个字节。

    UTF-8 编码中,一个英文字为一个字节,一个中文为三个字节。

    Unicode 编码中,一个英文为一个字节,一个中文为两个字节。

    所以我们知道计算机读取数据是一个一个的读取,当文件里面是数字或者英文的时候,因为都占了一个字节,所以可以正常读取出来。
    那么如果是汉字呢?最少也占了两个字节,如果把一个汉字拆分读取,显示出来肯定是有问题的。

    小结:如果数据通过Window自带的记事本软件打开,我们还可以读懂里面的内容,就使用字符流,否则使用字节流。如果你不知道该使用哪种类型的流,就使用字节流!

    下面是四种流对应功能的方法名总汇表:

    Java中File类和IO流的示例分析

    字节输出流:

    我们使用字节输出流给abc.txt文件里面写一句话:

    public class test01 {    public static void main(String[] args) {        try{              //创建输出流对象:            OutputStream fos = null;            fos = new FileOutputStream("G://abc.txt");            String str = "今天的博客是IO流";            //先将需要写入的字符打散成数组:            byte[] Words = str.getBytes();            //使用写入的功能            fos.write(words);        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }}

    运行后:

    Java中File类和IO流的示例分析

    字节输入流(从文件读取到控制台):

    我们知道如果文件内是汉字,使用字节输入流,那么显示的肯定是乱码,如果现在文件里面是“我爱中国”这四个字,使用下面这段代码:

    public class test02 {    public static void main(String[] args) {        //创建字节输入流对象:        InputStream fis = null;        try{            fis = new FileInputStream("G://abc.txt");            int data;            //fis.read()取到每一个字节通过Ascll码表转换成0-255之间的整数,没有值返回-1            while((data=fis.read())!=-1){                //(char) data 将读到的字节转成对应的字符                //中文的字符是2+个字节组成                System.out.print((char) data);            }        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }finally {            try{                fis.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }}

    输出的结果是:

    Java中File类和IO流的示例分析

    然后把文件内信息换成英文和数字:

    Java中File类和IO流的示例分析

    结论:有汉字的文件读取不能用字节流

    字符输出流:

    我们使用字符输出流给abc.txt文件里面写几句话:

    public class test03 {    public static void main(String[] args) {        try{            //使用字符输出流的FileWriter写入数据            Writer fw = new FileWriter("G://abc.txt");            fw.write("我们在学Java");            fw.write("一起加油");            fw.close(); //关闭资源        } catch (IOException e) {            e.printStackTrace();        }    }}

    Java中File类和IO流的示例分析

    也没用问题,我们发现,使用字符流写中文汉字更方便。

    字符输入流:

    可以设置缓存流提高获取值的效率:

    public class test04 {    public static void main(String[] args) throws IOException {        //创建字符输入流对象:        Reader fr = null;        try{            fr = new FileReader("G:/abc.txt");            //借助字符流对象创建了字符缓存区 把字符一个一个的取到后先放到缓存区            //然后一起再读写到程序内存来,效率更高            BufferedReader br = new BufferedReader(fr);            //先去缓存区一行一行的读取            String line = br.readLine();            while(line != null){                System.out.println(line);                line = br.readLine();            }        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }finally {            try {                fr.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }

    当文件内的信息为多行的时候:

    Java中File类和IO流的示例分析

    字节流和字符流总结:

    • IO是文件的输入和输出,我们要想去对文件或者写,或者通过程序发送消息给另外的用户都要用到流。

    • IO流分 字节流和字符流,字节流是以字节为单位IO,字符流是以字符为单位IO;通常读写图片、视频音频等用字节 流,如果读写文件的内容比如中文建议用字符流。

    以上是“Java中File类和IO流的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

    --结束END--

    本文标题: Java中File类和IO流的示例分析

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

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

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

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

    下载Word文档
    猜你喜欢
    • Java中File类和IO流的示例分析
      这篇文章主要为大家展示了“Java中File类和IO流的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中File类和IO流的示例分析”这篇文章吧。IO流:IO流概述:IO:输入/...
      99+
      2023-06-29
    • Java的File类和IO流实例分析
      本文小编为大家详细介绍“Java的File类和IO流实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java的File类和IO流实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。IO流:IO流概述:I...
      99+
      2023-06-29
    • Java中IO流的示例分析
      这篇文章主要为大家展示了“Java中IO流的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中IO流的示例分析”这篇文章吧。I/O简介I/O是Input/output的缩写,在ja...
      99+
      2023-06-20
    • Java-IO流的示例分析
      小编给大家分享一下Java-IO流的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言项目结构如下,在使用代码的时候注意修改成你自己的包名和类名一、资源管...
      99+
      2023-06-20
    • Java IO中包装流的示例分析
      这篇文章主要介绍了Java IO中包装流的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。根据功能分为节点流和包装流(处理流)节点流:可以从或向一个特定的地方...
      99+
      2023-06-26
    • JAVA的IO流、File、字节流及字符流实例分析
      今天小编给大家分享一下JAVA的IO流、File、字节流及字符流实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。IO简...
      99+
      2023-06-30
    • Java I/O 之File类的示例分析
      这篇文章主要为大家展示了“Java I/O 之File类的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java I/O 之File类的示例分析”这篇文章吧。File类Java使用Fil...
      99+
      2023-06-20
    • Java中IO操作字节流与字符流的示例分析
      这篇文章主要为大家展示了“Java中IO操作字节流与字符流的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中IO操作字节流与字符流的示例分析”这篇文章吧。IO操作字节流java....
      99+
      2023-06-29
    • Java IO中字节输入输出流的示例分析
      这篇文章主要介绍Java IO中字节输入输出流的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!讲的是字节输入输出流:InputStream、OutputSteam(下图红色长方形框内),红色椭圆框内...
      99+
      2023-06-26
    • 一起来了解Java的File类和IO流
      目录1.IO流介绍IO流体系结构2.Java中流的分2.1按流向分:2.2按数据传输单位分:2.3按功能分:3.File类介绍3.1file类的作用3.2file类构造函数3.3绝对...
      99+
      2022-11-13
    • Java中IO流文件读取、写入和复制的示例分析
      小编给大家分享一下Java中IO流文件读取、写入和复制的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!//构造文件File类File f=new File...
      99+
      2023-05-30
      java
    • java IO中字节和字符的示例分析
      这篇文章给大家分享的是有关java IO中字节和字符的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Java有哪些集合类Java中的集合主要分为四类:1、List列表:有序的,可重复的;2、Queue队列...
      99+
      2023-06-14
    • JAVA中IO操作的字节流和字符流实例分析
      这篇文章主要介绍了JAVA中IO操作的字节流和字符流实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JAVA中IO操作的字节流和字符流实例分析文章都会有所收获,下面我们一起来看看吧。IO操作字节流java...
      99+
      2023-06-29
    • Java中类和对象的示例分析
      这篇文章主要介绍了Java中类和对象的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。类可以看成是创建Java对象的模板1、类的定义public class&...
      99+
      2023-06-25
    • java中的IO流如何分类
      一、IO:上传下载,写入写出 流: 一连串流动的数据,以先入先出的方式进行流动,管道,以程序为中心、程序与网络|文件|服务器|数组..(相关课程推荐:java视频教程)分类1)按照流向: 输入流;输出流2)操作单元分: 字节流 (万能流...
      99+
      2016-05-18
      java入门 java IO 分类
    • Java中String类的示例分析
      这篇文章主要为大家展示了“Java中String类的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中String类的示例分析”这篇文章吧。带大家了解一下java的基础法语---S...
      99+
      2023-06-15
    • Java中Thread类的示例分析
      这篇文章主要为大家展示了“Java中Thread类的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中Thread类的示例分析”这篇文章吧。一,Thread 的几个常见属性Thre...
      99+
      2023-06-29
    • Java类和对象的示例分析
      这篇文章给大家分享的是有关Java类和对象的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、什么是类类(Class)是面向对象程序设计(OOP,Object-Oriented Programming)实...
      99+
      2023-06-29
    • Java Object类和包装类的示例分析
      这篇文章给大家分享的是有关Java Object类和包装类的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。查看源代码方法在IDEA中双击 shift 键,可以搜索相关类名,查看源代码点击Stru...
      99+
      2023-06-29
    • 深入浅析Java中IO流的 RandomAccessFile类
      这篇文章将为大家详细讲解有关深入浅析Java中IO流的 RandomAccessFile类,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。RandomAccessFilejava提供的对文件内...
      99+
      2023-05-31
      java randomaccessfile io流
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作