File 类和 InputStream, OutputStream 的用法

这篇具有很好参考价值的文章主要介绍了File 类和 InputStream, OutputStream 的用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.文件系统操作 

File 类

2.文件内容操作 

InputStream 

1.创建InputStream类对象

 2.读文件

OutputStream

1.创建OutputStream类对象

2.写文件


      上篇博客我们详情介绍了文件系统的相关知识。在文件系统操作中,由于文件是在硬盘上的,直接写代码不好操作,所以,我们通过创建File类对象,调用file类对象来间接访问硬盘上的文件。

1.文件系统操作 

File 类

1、创建File类对象

  File file=new File("d:/xixi.jpg");

通过文件绝对/相对路径进行初始化。

2、File类常用方法:

File 类和 InputStream, OutputStream 的用法

代码演示:

public static void main(String[] args) throws IOException {
        //1.创建一个file类
        File file=new File("d:/xixi.jpg");
        /*
        File file=new File("d:/xigua/xixi.jpg");
        System.out.println(file.getName());//返回文件/目录名  xixi.jpg
        System.out.println(file.getParent());//返回父目录    d:/xigua
        System.out.println(file.getPath());//返回路径名字符串  d:/xigua/xixi.jpg
        System.out.println(file.getAbsolutePath());//返回绝对路径名字符串 d:/xigua/xixi.jpg
        System.out.println(file.getCanonicalPath());//返回规范路径名字符串D:/xigua/xixi.jpg*/ 
        System.out.println(file.exists());//文件是否存在 true
        System.out.println(file.isDirectory());//文件是否为目录 false
        System.out.println(file.isFile());//文件是否为普通文件 true
    }

2.文件内容操作 

InputStream, OutputStream 类是处理二进制文件的,以字节流为基本单位。

  • InputStream 

1.创建InputStream类对象

File 类和 InputStream, OutputStream 的用法

观察源码发现InputStream是一个抽象类,不能直接new对象。我们通过实例化它的子类FileInputStream来创建对象。

File 类和 InputStream, OutputStream 的用法

InputStream inputStream=null;
try {
    inputStream=new FileInputStream("d:/student.txt");
}finally {
    inputStream.close();
}

注意一定不要忘记最后的close操作。但是上述的代码可以进行优化的。在Java中,还存在try with resources 这个操作。它是带有资源的try操作,会在try代码块结束后,自动进行close关闭操作。

try(InputStream inputStream=new FileInputStream("d:/student.txt")){
}
指定一个要读的文件

这是由于InputStream实现了Closeable接口 

 File 类和 InputStream, OutputStream 的用法

 2.读文件

首先,我们要读取的文件student.txt的内容为:

File 类和 InputStream, OutputStream 的用法

我们通过read()方法,while循环进行读取,当读到文件结尾是,结束,跳出循环。

try( InputStream inputStream=new FileInputStream("d:/student.txt")){
    while(true){
        int ret=inputStream.read();//无参相当于一次读一个字节
        if(ret==-1){
            break;
        }else{
            System.out.println(ret);//ascii码值 
                
        }
   }
}

 结果:

File 类和 InputStream, OutputStream 的用法

 按照ascii码表,可解析出数据为20201209004cjw.

如果是汉字的话:每个汉字三个字节(一个数字一个字节)。(utf-8)

将student.txt的内容修改成小曹,运行,发现结果:

File 类和 InputStream, OutputStream 的用法

我们通过网站查看utf-8字符编码,将上述读取的字节内容以16进制的格式打印。

File 类和 InputStream, OutputStream 的用法

System.out.printf("%x\n",ret);

查看结果:

File 类和 InputStream, OutputStream 的用法

与上述一个字节一个字节的读取对上了。

  • OutputStream

1.创建OutputStream类对象

 try {
      OutputStream outputStream=new FileOutputStream("d:/student2.txt");
 }catch (IOException e){
      e.printStackTrace();
}

2.写文件

 try {
      OutputStream outputStream=new FileOutputStream("d:/student2.txt");
      outputStream.write(97);
 }catch (IOException e){
      e.printStackTrace();
}

查看student2.txt:

File 类和 InputStream, OutputStream 的用法

注:read()可以一次读取一个字节或多个字节;write()也可以一次写一个字节或多个字节。 


File类是基于文件系统操作的,主要用于创建/删除文件,创建目录,判断当前是普通文件海还是目录,返回绝对/相对路径等等.InputStream和OutputStream是基于文件内容的,打开文件,读取内容,写入内容.文章来源地址https://www.toymoban.com/news/detail-438040.html

到了这里,关于File 类和 InputStream, OutputStream 的用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • outputStream(输出流)转inputstream(输入流)以及输入流如何复用

    需求: 通过MultipartFile 上传文件到文件服务器,上传前要把文件转为pdf格式进行上传,并生成文件摘要用来验证服务器中的文件是否被篡改。 准备: 需要涉及到 inputstream(输入流)或outputStream(输出流)要使用两次 。 一、如果该文件本身就是pdf格式则直接进行上传。第一次

    2024年02月14日
    浏览(31)
  • 在java中将inputStream对象转换为File对象(不生成本地文件)

    需求说明 在后端中通过POI生成Excel文件流,将输出流(outputStream)转为输入流(inputStream)后又需要将输入流(inputStream)转为File对象 问题:如果需要将输入流(inputStream)转为File对象,则必须要根据本地路径去生成一个File对象才行,也就是说不管怎样本地都必须要生成出来

    2024年02月15日
    浏览(42)
  • <JavaEE> 文件IO -- File类和文件操作

    目录 一、文件的概念 二、文件系统 三、文件类型 四、使用 File 类进行文件操作 4.1 File 类中的 pathSeparator 属性 4.2 File 类构造方法 4.3 File 类常用方法 什么是文件? 广义上的“文件”是指抽象化的操作系统中的硬件设备和软件资源,目的是对这些“文件”进行同一的管理。

    2024年02月04日
    浏览(29)
  • Linux区分文件类型,file指令,目录权限,umask掩码,共享文件,Linux中的一些有趣指令

    所属专栏:Linux学习❤️ 🚀 博主首页:初阳785❤️ 🚀 代码托管:chuyang785❤️ 🚀 感谢大家的支持,您的点赞和关注是对我最大的支持!!!❤️ 🚀 博主也会更加的努力,创作出更优质的博文!!❤️ 🚀 关注我,关注我,关注我,重要的事情说三遍!!!!!!!!

    2024年02月08日
    浏览(33)
  • python中针对同一目录或不同目录下的其他文件或文件夹的import用法

    在Python中, import 用于导入其他文件或模块的内容,让你可以在当前文件中使用这些内容。下面我将介绍如何使用 import 来导入同一目录或不同目录下的文件或文件夹。 1. 导入同一目录下的文件或模块: 如果你要导入与当前文件位于同一目录下的文件或模块,可以直接

    2024年02月14日
    浏览(37)
  • 【Nuxt3】目录中components文件夹的用法

    在Nuxt3中,components文件夹和vue文件夹用处一样,都是放置vue公共组件的地方。只不过由于Nuxt3中components文件内的组件自动导入机制,用法些许不同。 components/ 目录是你放置所有 Vue 组件的地方。 Nuxt 会自动导入该目录中的所有组件(以及您可能使用的任何模块注册的组件)。

    2024年01月19日
    浏览(26)
  • java -- File类和递归

    java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。File类将文件,文件夹和路径封装成了对象,提供大量的方法来操作这些对象。 绝对路径 :从 盘符 (Windows)或\\\" / \\\"(Linux)开始的路径,这是一个完整的路径,绝对路径具有唯一性 相对

    2023年04月16日
    浏览(23)
  • Java File类和IO流

    目录 1. File类 1.1 File对象创建 1.2 File判断和获取方法 1.3 创建和删除方法 1.4 遍历文件夹 2. 字符集 2.1 ASCII字符集 2.2 GBK字符集 2.3 Unicode字符集 2.4 UTF-8 2.5 字符集小结 2.6 编码和解码 3. IO流(字节流) 3.1 IO流概述 3.2 FileInputStream 3.3 FileOutputStream  3.4 FileReader 3.5 FileWriter 3.6 缓冲流

    2024年02月09日
    浏览(26)
  • 解决npm报错Error:EEXIST: file already exists, mkdir “文件路径“,yarn create vite-app 报文件名、目录名或卷标语法不正确

    我这里出现错误是因为在配置npm命令目录与npm全局安装位置时目录创建失败,但是在执行 命令之后在本地的\\\" .yarnrc \\\"文件中 \\\" global-folder \\\" 属性被写入,之后会卡在 这个问题 在c盘的对应用户的文件夹下找到 .yarnrc 文件,打开它,将其配置为正确的路径即可 我这里是因为yarn的

    2024年02月08日
    浏览(46)
  • 【Java|基础篇】File类和IO流

    File类是Java中用于表示文件或目录的类。它提供了一些方法来操作文件和目录的属性和内容,可以进行文件的创建、删除、重命名等操作。 File类可以用于表示磁盘上的实际文件或目录,也可以表示一个虚拟的文件或目录。File对象可以通过路径来创建,路径可以是绝对路径或

    2024年02月15日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包