p3 FileInputStream 和 FileOutputStream

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

FileInputStream 和 FileOutputStream

p3 FileInputStream 和 FileOutputStream

  • InputStream:字节输入流

    InputStream抽象类是所有类输入流的超类

    InputStream 常用的子类

    1. FileInputStream: 文件输入流
    2. BufferedInputStream:缓冲字节输入流
    3. ObjectInputStream:对象字节输入流

一、FileInputStream

p3 FileInputStream 和 FileOutputStream

p3 FileInputStream 和 FileOutputStream

  • 构造方法摘要

    Constructor and Description
    FileInputStream(File file)通过打开与实际文件的连接创建一个 FileInputStream ,该文件由文件系统中的 File对象 file命名。
    FileInputStream(FileDescriptor fdObj)创建 FileInputStream通过使用文件描述符 fdObj ,其表示在文件系统中的现有连接到一个实际的文件。
    FileInputStream(String name)通过打开与实际文件的连接来创建一个 FileInputStream ,该文件由文件系统中的路径名 name命名。
  • 方法摘要

    Modifier and Type Method and Description
    int available()返回从此输入流中可以读取(或跳过)的剩余字节数的估计值,而不会被下一次调用此输入流的方法阻塞。
    void close()关闭此文件输入流并释放与流相关联的任何系统资源。
    protected void finalize()确保当这个文件输入流的 close方法没有更多的引用时被调用。
    FileChannel getChannel()返回与此文件输入流相关联的唯一的FileChannel对象。
    FileDescriptor getFD()返回表示与此 FileInputStream正在使用的文件系统中实际文件的连接的 FileDescriptor对象。
    int read()从该输入流读取一个字节的数据。
    int read(byte[] b)从该输入流读取最多 b.length个字节的数据为字节数组。
    int read(byte[] b, int off, int len)从该输入流读取最多 len字节的数据为字节数组。
    long skip(long n)跳过并从输入流中丢弃 n字节的数据。

代码演示:文章来源地址https://www.toymoban.com/news/detail-470722.html

import org.junit.jupiter.api.Test;

import java.io.FileInputStream;
import java.io.IOException;

/**
 * @author
 * @version 1.0
 */
public class FileInputStream_ {
    public static void main(String[] args) {

    }

    /**
     * 演示读取文件
     * read(byte b)单个字节的读取,效率较低
     * 使用 read(byte[] b) 来读取
     */
    @Test
    public void readFile01(){
        String filePath = "e:\\hello.txt";
        int readData = 0;
        FileInputStream fileInputStream = null;
        try {
            //创建 FileInputStream 对象,用于读取文件
            fileInputStream = new FileInputStream(filePath);
            //从该输入流读取一个字节的数据。如果没有输入可用,此方法将阻止
            //如果返回-1.表示读取完毕
            while((readData = fileInputStream.read()) != -1){
                System.out.print((char)readData);//转成char显示
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                fileInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    @Test
    public void readFile02(){
        String filePath = "e:\\hello.txt";
        byte[] buf = new byte[8];//一次读8个字节
        int readLen = 0;
        FileInputStream fileInputStream = null;
        try {
            //创建 FileInputStream 对象,用于读取文件
            fileInputStream = new FileInputStream(filePath);
//            读取的字节数最多等于b的长度。
//            令k为实际读取的字节数; 这些字节将存储在元素b[0]至b[ k -1] ,使元素b[ k ]至b[b.length-1]不受影响。
//            返回读取到缓冲区的总字节数,或者如果没有更多的数据,因为已经到达流的末尾,则是 -1 。
            while((readLen = fileInputStream.read(buf)) != -1){
                System.out.print(new String(buf, 0, readLen));//显示
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                fileInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

/*运行结果

	hello world

	hello world

*/

二、FileOutputStream

p3 FileInputStream 和 FileOutputStream

p3 FileInputStream 和 FileOutputStream

  • 构造方法摘要

    Constructor and Description
    FileOutputStream(File file)创建文件输出流以写入由指定的 File对象表示的文件。
    FileOutputStream(File file, boolean append)创建文件输出流以写入由指定的 File对象表示的文件。
    FileOutputStream(FileDescriptor fdObj)创建文件输出流以写入指定的文件描述符,表示与文件系统中实际文件的现有连接。
    FileOutputStream(String name)创建文件输出流以指定的名称写入文件。
    FileOutputStream(String name, boolean append)创建文件输出流以指定的名称写入文件。
  • 方法摘要

    Modifier and Type Method and Description
    void close()关闭此文件输出流并释放与此流相关联的任何系统资源。
    protected void finalize()清理与文件的连接,并确保当没有更多的引用此流时,将调用此文件输出流的 close方法。
    FileChannel getChannel()返回与此文件输出流相关联的唯一的FileChannel对象。
    FileDescriptor getFD()返回与此流相关联的文件描述符。
    void write(byte[] b)b.length个字节从指定的字节数组写入此文件输出流。
    void write(byte[] b, int off, int len)len字节从位于偏移量 off的指定字节数组写入此文件输出流。
    void write(int b)将指定的字节写入此文件输出流。

代码演示:

import org.junit.jupiter.api.Test;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

/**
 * @author
 * @version 1.0
 */
public class FileOutputStream_ {
    public static void main(String[] args) {
    }
    @Test
    public void writeFile(){
        String filePath = "e:\\a.txt";
        FileOutputStream fileOutputStream = null;
        try {
            String str = "Hello World!";
            //得到FileOutputStream对象
            //1. new FileOutputStream(filePath) 创建方式,写入内容会默认覆盖原来的内容
            //2. new FileOutputStream(filePath, append) 创建方式,append 为ture,写入内容会默认追加至原来的内容后,否则就覆盖
            fileOutputStream = new FileOutputStream(filePath, true);
            //写入一个字节
            fileOutputStream.write('H');
            //写入字符串,str.getBytes() 可以把 字符串 -》字符数组
            fileOutputStream.write(str.getBytes());
            /*
            write(byte[] b, int off, int len) 将 len 字节从位于偏移量 off的指定字节数组写入文件输出流
             */
//            fileOutputStream.write(str.getBytes(), 0, str.length());
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                fileOutputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }

}


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

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

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

相关文章

  • maven test new FileInputStream找不到文件

    现象 : 正常运行及手动运行单元测试时,FileInputStream都能找到相对路径文件。(文件在与项目位于同一个父目录)但执行maven test的时候,就提示找不到这个文件。 解决办法 : 修改pom文件,指定工作目录 分析 不指定工作目录时,它可能发生变化,比如正常运行时工作目录

    2024年02月06日
    浏览(22)
  • 9.classpath、类.class.getClassLoder.getResourceAsStream()、FileInputStream(“path“)

    目录   一、二者的区别。 (1)两者读取文件的位置不同。 (2)跨平台路径问题。 (3)classpath是什么?   类.class.getClassLoader().getResourceAsStream() 方法和 FileInputStream(\\\"path\\\") 方法的区别在于两者读取文件的位置不同: 1.类.class.getClassLoader().getResourceAsStream() 方法是从classpath中读

    2023年04月08日
    浏览(24)
  • JDBC p3 事务

    基本介绍 JDBC 程序中当一个Connection对象创建时,默认情况下是自动提交事务:每次执行一个 SQL 语句时,如果执行成功,就会向数据库自动提交,而不能回滚。 JDBC程序中为了多个SQL语句作为一个整体执行,需要 使用事务 。 调用 Connection 的 setAutoCommit(false) 可以取消自动提交

    2024年02月15日
    浏览(19)
  • 反射 p3 类加载

    反射机制是Java实现动态语言的关键,也就是通过反射实现类动态加载。 静态加载: 编译时加载相关的类,如果没有则报错,依赖性太强。 动态加载: 运行时加载相关的类,如果运行时不用该类,即使不存在该类,也不会报错,降低了依赖性。 代码演示: 当创建对象时(

    2024年02月16日
    浏览(19)
  • 第P3周:天气识别

    data_dir = pathlib.Path(\\\'./data/\\\')  : 使用pathlib.Path处理路径,它提供了更多关于路径的方法和属性 data_paths = list(data_dir.glob(\\\'*\\\'))  : 使用Path.glob方法搜索当前目录下的所有文件/文件夹。这个方法返回一个迭代器,所以使用list()将其转换为列表。 classNames = [path.name for path in data_paths]  

    2024年02月10日
    浏览(31)
  • 【FastAPI】P3 请求与响应

    在网络通讯中, 请求(Request) 与 响应(Response) 扮演着至关重要的角色,它们构成了客户端与服务器间互动的根本理念。 请求 ,指的是客户端向服务器请求数据; 响应 ,指的是服务器发送给客户端的 HTTP 响应; 总的来说,当客户端向服务器发送一个 HTTP 请求时,服务器

    2024年02月21日
    浏览(24)
  • Servlet p3 HttpServletRequest对象

    ​ HttpServletRequest对象: HttpServletRequest 对象专门用于封装 HTTP 请求消息,简称 request 对象。主要作用是用来接收客户端发送过来的请求信息,该对象是由Tomcat封装好传递过来。 ​HttpServletRequest接口是ServletRequest的子接口。HTTP 请求消息分为请求行、请求消息头和请求消息体三

    2024年02月11日
    浏览(30)
  • Linux p3 远程操作Linux

    【学习课程】:【【小白入门 通俗易懂】2021韩顺平 一周学会Linux】 https://www.bilibili.com/video/BV1Sv411r7vd/?p=14share_source=copy_webvd_source=2c07d62293f5003c919b2df9b2e0549e 为什么需要远程登录Linux? Linux服务器是开发小组共享的 正式上线的项目是运行在公网上的 因此程序员需要远程登录到

    2024年02月08日
    浏览(25)
  • 【P3】JMeter HTTP 接口设计

    一、简答 HTTP 接口设计 HTTP请求默认值: 配置 http 请求的默认值,比如协议、主机、端口 HTTP信息头管理器: 配置 http 请求的头部参数 HTTP请求: 用于和业务交互 查看结果树: 用于结果展示 二、准备工作 慕慕生鲜: http://111.231.103.117/#/login 进入网页后,登录,页面提供了账

    2024年02月06日
    浏览(62)
  • 【线性代数】P3 拉普拉斯定理

    拉普拉斯定理是通过对余子式和代数余子式的变形展开得到,有关余子式和代数余子式的概念见:https://blog.csdn.net/weixin_43098506/article/details/126765390 假设有四阶行列式: k阶子式 行列式D的一个二阶子式为: 余子式 那么二阶子式A的余子式为: 代数余子式 那么二阶子式的代数余

    2024年02月12日
    浏览(34)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包