Java:字符流 文件输出 与 读入 方法

Java:字节流 文件输出与读入方法 并 实现文件拷贝

文章目录

    • 字符流
      • FileReader
      • FileWrite

字符流

字符流底层就是字节流。
字符流 = 字节流 + 字符集

特点:
输入流:一次读入一个字节,遇到中文时,一次读多个字节。
输出流:底层会把数据按照指定的编码精选编码, 变成汉字。
用于对应纯文本操作。

FileReader

  1. 创建字符流对象
  2. 读取数据
    无参,返回int, 读到末尾返回-1
    有参,传入char[],返回长度
    默认也是一个一个字节读,还换转换成10进制返回
    强转为char即可
  3. 释放资源

无参读入:

package com.io.testdemo5;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Test5 {
    public static void main(String[] args) throws IOException {
		
		// 创建字符流对象
        FileReader fr = new FileReader("src\\ccc.txt");

		// 读取数据
        int ch;
        while((ch = fr.read()) != -1) {
            System.out.print((char)ch);
        }
		// 释放资源
        fr.close();
    }
}

在这里插入图片描述
在这里插入图片描述
传入char[] 读入:

package com.io.testdemo5;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Test5 {
    public static void main(String[] args) throws IOException {

        FileReader fr = new FileReader("src\\ccc.txt");

        char[] chars = new char[10];
        int len;
        while ((len = fr.read(chars)) != -1) {
            System.out.print(new String(chars, 0, len));
        }

        fr.close();
    }
}

在这里插入图片描述

其实是将转十进制,强转为char,放入数组中,这三步合并了。

FileWrite

  1. 创建对象,指定位置(产生数据传输通道)
    参数可以是File对象,也可以是路径
  2. 写出数据
    可以传入字符数组,指定起始位置,长度
    也可以传入字符串
    或者int十进制,会自动转为字符
  3. 释放资源
    解除资源占用
package com.io.testdemo6;

import java.io.FileWriter;
import java.io.IOException;

public class Test7 {
    public static void main(String[] args) throws IOException {

        // true表示续写
        FileWriter fw = new FileWriter("src/ccc.txt", true);

        // 传入整数,字符串,字符数组都可以
        fw.write(25105); // 我
        fw.write('一');
        fw.write("你好阿\r\n");
        fw.write(new char[] {'a', 'b', 'c'});

        fw.close();
    }
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/237077.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

图-数据结构

图的介绍 如果你有学过《离散数学》,那么对图的概念一定不陌生,在计算机科学中,一个图就是一些顶点的集合,这些顶点通过一系列边连接(结对)。顶点用圆圈表示,边就是这些圆圈之间的连线。注意&a…

Design patterns--代理模式

设计模式之代理模式 我们使用Qt开发大型应用程序时,经常遇见大型程序启动时需要加载一些配置信息、用户末次操作信息,以及算法模型等数据时比较费时,笔者在程序启动时设计欢迎页或加载页等窗体来提示用户程序正在加载某些数据,加载…

【Java数据结构 -- 顺序表】

List和ArrayList与顺序表 一. List1.1 List介绍2.1 常见接口介绍3.1 List的使用 二. ArrayList与顺序表1.线性表2.顺序表2.1 接口的实现2.2 顺序表的创建2.3 顺序表的打印2.4 顺序表的插入2.5 顺序表的按索引位置插入数据2.6 判断顺序表是否包含某个数2.7 返回顺序表某个数的索…

谁会成为第一个MoE大模型基座呢?重磅!Mixtral MoE 8x7B!!!

文章目录 谁会成为第一个MoE大模型基座呢?重磅!Mixtral MoE 8x7B!!!前言重磅!Mixtral MoE 8x7B!!!Mixtral是啥模型介绍模型结构长啥样?表现如何?可…

Python从入门到精通五:Python数据容器

数据容器入门 为什么学习数据容器 思考一个问题:如果我想要在程序中,记录5名学生的信息,如姓名。 如何做呢? 学习数据容器,就是为了批量存储或批量使用多份数据 Python中的数据容器: 一种可以容纳多份…

HCIA-H12-811题目解析(10)

1、【单选题】DHCP客户端在租期到达哪个比例时第一次发送续租报文? 2、【单选题】在WLAN中用于标识无线网络, 区分不同的无线网络的是? 3、【单选题】我们在笔记本电脑上搜索可接入无线网络时,显示出来的网络名称实际是 4、【单…

哪些原因导致MES管理系统实施项目失败

在制造业中,实施MES管理系统是一种提高生产效率、降低成本、提升质量的重要手段。然而,许多MES管理系统实施项目并未取得预期的成功,甚至失败。本文将探讨导致MES管理系统实施项目失败的原因。 1、需求不明确 在MES实施项目中,需…

Java-异常(一)-异常的概述和常见异常的举例

🐶b站视频 124-异常处理-异常的概述与常见异常的举例_哔哩哔哩_bilibili 目录 b站视频 5.1 异常概念 5.2 Error 示例代码 5.3 Exception异常划分 ❓面试题:常见的异常有哪些?举例说明 🐶5.1 异常概念 在使用计算机语言进行…

基于SSM的校园心理健康网站的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

PostGIS学习教程十二:地理

PostGIS学习教程十二:地理 坐标为"地理(geographics)“形式或者说是” 纬度(latitude)/经度(longitude)"形式的数据非常常见。 与Mercator(墨卡托)、UTM&…

【jitterbuffer】2:OnCompleteFrameCallback 送去FrameBuffer 处理的流程

【jitterbuffer】2:OnCompleteFrameCallback 送去FrameBuffer 处理的流程 基于m98版本。 WebRtc Video Receiver(六)-FrameBuffer原理 大神有个详细的论述。 Finder的FID设计 H.264 没有FID,使用RtpSeqNumOnlyRefFinder ,比较复杂,要做出决定 RtpSeqNumOnlyRefFinder cla…

canvas 有趣的弹簧效果

先上效果 两个小球之间有一根弹簧,这里有一条线表示,其中左球固定,在点击开始后,右球开始做自由落体 思路 先做受力分析 经过受力分析可以发现,整个系统一共有三个力在起作用,我们分别把他们求出来并合成…

鸿蒙原生应用再添新丁!同花顺入局鸿蒙

鸿蒙原生应用再添新丁!同花顺入局鸿蒙 来自 HarmonyOS 微博12月11日消息,同花顺已完成#鸿蒙原生应用#beta版本,并正在进行全量版本开发,进一步丰富了#鸿蒙原生应用#的覆盖领域。同花顺作为股民和券商首选的一站式金融理财服务平台…

搜集怎么绘制三维曲线和曲面?

1、针对函数对象是单一变量、两个函数的情况。用plot3函数;(三维曲线) 看一下matlab官方的例子: t 0:pi/50:10*pi; st sin(t); ct cos(t); plot3(st,ct,t) 绘制出来的曲线: 几个比较关键的点: &…

Linux系统编程(一):基本概念

参考引用 Unix和Linux操作系统有什么区别?一文带你彻底搞懂posix Linux系统编程(文章链接汇总) 1. Unix 和 Linux 1.1 Unix Unix 操作系统诞生于 1969 年,贝尔实验室发布了一个用 C 语言编写的名为「Unix」的操作系统&#xff0…

nginx中的正则表达式及location和rewrite

目录 常用的Nginx 正则表达式 location和rewrite的区别 location location 大致可以分为三类 location 常用的匹配规则 location 优先级 location 示例说明 location优先级的总结 rewrite rewrite的功能 rewrite实现跳转的条件 rewrite的执行顺序 rewrite的语法格式…

C# 任务的异常和延续处理

写在前面 当Task在执行过程中出现异常或被取消等例外的情况时,为了让执行流程能够继续进行,可以使用延续方法实现这种链式处理;还可以针对前置任务不同的执行结果,选择执行不同的延续分支方法。子任务执行过程中的任何异常都会被…

【收获】成长之路

目录 一、前言二、计算机方面三、专业知识方面四、总结 一、前言 四年,对于一个人的成长来说,是一个相当重要的阶段。在这段时间里,我经历了许多挑战、收获了许多成就,也在不断地成长和改变。回首这四年的点点滴滴,我深…

linux docker 怎么更换镜像源

要设置Docker镜像,您可以按照以下步骤进行: 1. 打开终端并登录到Docker主机上。 运行以下命令来编辑 Docker 的配置文件 "/etc/docker/daemon.json"(如果不存在则新建): sudo nano /etc/docker/daemon.js…

Django系列之Celery异步框架+RabbitMQ使用

在Django项目中,如何集成使用Celery框架来完成一些异步任务以及定时任务呢? 1. 安装 pip install celery # celery框架 pip install django-celery-beat # celery定时任务使用 pip install django-celery-results # celery存储结果使用2. Django集成…