Java 第19章 IO流 课堂练习+本章作业

文章目录

  • Buffered流拷贝二进制文件
  • 创建文件写入文本
  • 读取文本文件
  • 存读Properties文件

Buffered流拷贝二进制文件

package com.hspedu.chapter19.outputStream;import java.io.*;public class BufferedCopy02 {public static void main(String[] args) {String srcFilePath = "c:\\bh.jpg";String destFilePath = "c:\\hsp.jpg";BufferedInputStream bis = null;BufferedOutputStream bos = null;try {bis = new BufferedInputStream(new FileInputStream(srcFilePath));bos = new BufferedOutputStream(new FileOutputStream(destFilePath));byte[] buff = new byte[1024];int readLen = 0;while ((readLen = bis.read(buff)) != -1) {bos.write(buff, 0, readLen);}System.out.println("Copied successfully..");} catch (IOException e) {throw new RuntimeException(e);} finally {try {bis.close();bos.close();} catch (IOException e) {throw new RuntimeException(e);}}}
}

创建文件写入文本

在这里插入图片描述

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;public class Homework01 {public static void main(String[] args) throws IOException {String filePath = "c:\\mydir";File file = new File(filePath);if (!file.exists()) {if (file.mkdirs())System.out.println(filePath + " has been created successfully..");elseSystem.out.println(filePath + " was fail to be created..");} else {System.out.println(filePath + " has already existed..");}String destfile = filePath + "\\hello.txt";File file1 = new File(destfile);if (!file1.exists()) {if (file1.createNewFile()) {BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file1));bufferedWriter.write("hello, world~~ 韩顺平教育");bufferedWriter.close();System.out.println(destfile + " has been created successfully..");} else {System.out.println(destfile + " has already existed..");}} else {System.out.println(destfile + " has already existed..");}}
}

读取文本文件

在这里插入图片描述

public class Homework02 {public static void main(String[] args) throws IOException {String filePath = "c:\\hello.txt";String line = "";int lineNum = 0;BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));while ((line = bufferedReader.readLine()) != null) {System.out.println(++lineNum + " " + line);}if (bufferedReader != null)bufferedReader.close();}
}

在这里插入图片描述

public class Homework02 {public static void main(String[] args) throws IOException {String filePath = "c:\\hello.txt";// InputStreamReader指定编码方式InputStreamReader isr = new InputStreamReader(new FileInputStream(filePath), "gbk");String line = "";int lineNum = 0;BufferedReader bufferedReader = new BufferedReader(isr);while ((line = bufferedReader.readLine()) != null) {System.out.println(++lineNum + " " + line);}if (bufferedReader != null)bufferedReader.close();}
}

存读Properties文件

在这里插入图片描述

public class Homework03 {public static void main(String[] args) throws IOException {String filePath = "src\\dog.properties";Properties properties = new Properties();properties.load(new FileReader(filePath));String name = properties.get("name") + ""; //Object -> Stringint age = Integer.parseInt(properties.get("age") + "");// Object -> intString color = properties.get("color") + "";//Object -> StringDog dog = new Dog(name, age, color);System.out.println("===dog对象信息====");System.out.println(dog);//将创建的Dog 对象 ,序列化到 文件 dog.dat 文件String serFilePath = "c:\\dog.dat";ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(serFilePath));oos.writeObject(dog);//关闭流oos.close();System.out.println("dog对象,序列化完成...");}//在编写一个方法,反序列化dog@Testpublic void m1() throws IOException, ClassNotFoundException {String serFilePath = "e:\\dog.dat";ObjectInputStream ois = new ObjectInputStream(new FileInputStream(serFilePath));Dog dog = (Dog)ois.readObject();System.out.println("===反序列化后 dog====");System.out.println(dog);ois.close();}
}class Dog implements  Serializable{private String name;private int age;private String color;public Dog(String name, int age, String color) {this.name = name;this.age = age;this.color = color;}@Overridepublic String toString() {return "Dog{" +"name='" + name + '\'' +", age=" + age +", color='" + color + '\'' +'}';}
}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大创项目推荐 深度学习人脸表情识别算法 - opencv python 机器视觉

文章目录 0 前言1 技术介绍1.1 技术概括1.2 目前表情识别实现技术 2 实现效果3 深度学习表情识别实现过程3.1 网络架构3.2 数据3.3 实现流程3.4 部分实现代码 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习人脸表情识别系…

redis 三主六从高可用dockerswarm高级版(不固定ip)

redis集群(cluster)笔记 redis 三主三从高可用集群docker swarm redis 三主六从高可用docker(不固定ip) redis 三主六从高可用dockerswarm高级版(不固定ip) 此博客解决,redis加入集群后,是用于停掉后重启,将nodes.conf中的旧的Ip替换为新的…

docker搭建Dinky —— 筑梦之路

简介 Dinky 是一个 开箱即用 、易扩展 ,以 Apache Flink 为基础,连接 OLAP 和 数据湖 等众多框架的 一站式 实时计算平台,致力于 流批一体 和 湖仓一体 的探索与实践。 主要功能 其主要功能如下: 沉浸式 FlinkSQL 数据开发&#x…

PHP开发日志 ━━ 基于PHP和JS的AES相互加密解密方法详解(CryptoJS) 适合CryptoJS4.0和PHP8.0

最近客户在做安全等保,需要后台登录密码采用加密方式,原来用个base64变形一下就算了,现在不行,一定要加密加key加盐~~ 前端使用Cypto-JS加密,传输给后端使用PHP解密,当然,前端虽然有key有盐&…

书生-浦路大模型全链路开源体系

2023年,大模型成为热门关键词 论文链接 大模型已经成为发展通用人工智能的重要途经 模型评测过程:从模型到应用 全链条开源开发体系 | 数据: 多模态融合 万卷包含文本、图像和视频等多模态数据,涵盖科技、文学、媒体、教育和法…

奋楫扬帆,奔赴新程 | 2023 年图扑大事记回顾,与您携手共迎 2024

2023.01 工信部公示了 2022 年度智能制造示范工厂揭榜单位和优秀场景名单。图扑软件和上海洲邦合作建设的宁波甬友数字孪生工厂被评为优秀场景,全国共有 369 个智能制造典型场景入选。 2023.01 在第十一届中国创新创业大赛全国赛(新一代信息技术&#…

react+redux+antd-mobile 之 记账本案例

1.环境搭建 //使用CRA创建项目,并安装必要依赖,包括下列基础包 //1. Redux状态管理 - reduxjs/toolkit 、 react-redux //2. 路由 - react-router-dom //3. 时间处理 - dayjs //4. class类名处理 - classnames //5. 移动端组件库 - antd-mobile //6. 请…

SAP badi增强查找

查找SAP BADI的方法. 1. 通过SE24 查找. 输入 CL_EXITHANDLER, 双击 GET_INTANCE. 设定断点. 执行Tcode, 当有出口时, 程式会自动进入Debug界面. 观察 EXIT_NAME的值. 2. 同样可能SE80中通过Package查找. 3. 通过ST05 追踪, BADI对应的数据表为 SXS_INTER, SXC_EXIT, SXC…

报告解读:中国新一代终端安全市场洞察,2023

报告解读 中国新一代终端安全市场洞察 2023 安全防御的“最前线” 01 混沌的企业安全 以下来自CSO们最关注的安全热点问题: Q1我们如何看待当下泛化的终端安全,混合的IT环境企业面临的安全变化? IDC:伴随着全球数字化转型的快…

multipath 内核接口及框架介绍

文章目录 1 云主机使用网络存储 io 流程2 multipath 介绍 1 云主机使用网络存储 io 流程 对于一个云服务环境,大致会有网络节点,存储节点,计算节点,控制节点,其中虚拟云主机在计算节点工作,而虚拟云主机&a…

市场复盘总结 20240103

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整 昨日回顾: 方法一:指标选股 select * from dbo.ResultAll where 入选类型 like %指标选股% and 入选日期=20240103;方法二:趋势选股法 1、最低价持续3日上涨 2、均价…

玩转贝启科技BQ3588C开源鸿蒙系统开发板 —— DevEco Studio下载与安装

一、下载DevEco Studio IDE开发工具 1. 登录鸿蒙官网 网址为: ​​​​​​​华为HarmonyOS智能终端操作系统官网 | 应用设备分布式开发者生态 页面如下: 2. 搜索“DevEco Studio IDE” 点击右上角的“请输入关键词”,在其中搜索“DevEc…

前端发开的性能优化 请求级:请求前(资源预加载和预读取)

预加载 预加载:是优化网页性能的重要技术,其目的就是在页面加载过程中先提前请求和获取相关的资源信息,减少用户的等待时间,提高用户的体验性。预加载的操作可以尝试去解决一些类似于减少首次内容渲染的时间,提升关键资…

智慧工厂:科技与制造融合创新之路

随着科技的迅猛发展,智慧工厂成为制造业领域的热门话题。智慧工厂利用先进的技术和智能化系统,以提高生产效率、降低成本、增强产品质量和灵活性为目标,正在引领着未来制造业的发展。 智慧工厂的核心是数字化和自动化生产,相较于传…

odoo 客制化审批流

以BPM、OA为代表的应用平台,低代码处理为前提的审批流功能定制化 功能介绍: 业务对象:针对侵入式注册BPM业务场景:设置审批场景:如:请假大于三天的场景、金额大于1000的场景节点条件: 当符合某…

Nacos设置账号密码

1、控制台设置 # 开启账号密码验证 nacos.core.auth.enabledtrue# 设置账号密码 nacos.core.auth.usernamenacos nacos.core.auth.passwordnacos1232、数据库设置 密码为:nacos,对应加密信息是: $2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2k…

CMU15-445-Spring-2023-Project #0 - C++ Primer

前置任务。 Task #1 - Copy-On-Write Trie Copy-on-write (COW) Trie 在进行修改时,不会立即复制整个数据结构。相反,它会在需要修改的节点被多个引用的时候才进行复制。当要对某个节点进行写操作(添加子节点或者继续向下insert&#xff09…

Vue中全局事件总线的配置和原理

实现任意组件之间的通信 任意组件通信的原理: 1、实现任意组件之间的通信,需要一个傀儡。这个傀儡既能被vm访问到,也能被VueComponent访问。 2、VueComponent.prototype.proto Vue.prototype为图上1.0黄色的线路。是Vue让组件实例对象VueComponent可以访问到Vue原…

普中STM32-PZ6806L开发板(资料收集...)

简介 逐渐收集一些开发过程中使用到的文档资料数据手册 DS18B20 数据手册 DS18B20 Datasheet 开发文档 STM32F1各种文档 https://www.st.com/en/embedded-software/stm32cubef1.html#documentation HAL库文档开发文档 你使用的HAL文档, 在STM32CubeMX生成过程的最下面有…

LeetCode994腐烂的橘子(相关话题:矩阵dfs和bfs)

题目描述 在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。 每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。 返回 直到单…