当前位置: 首页 > news >正文

每天写java到期末考试(6.6)-java文件输入输出流实验

1、用字节流读写二进制文件

要求:用DataOutputStream+FileOutputStream类将1,2,…,100,这100个数字写入到文件

d:\out1.bin里,然后再用DatalnputStream+FilelnputStream类将d:\out1.bin的内读出来,并输出到屏幕上。

用DataOutputStream+FileOutputStream写入二进制数据时,直接调用DataOutputStream的writelnt()方

法将一个int型数据写入到文件中。读入数据时用DatalnputStream+FilelnputStream,调用DatalnputStream的

readlnt()方法读入一个int型数据。

判断是否读入完毕有3种办法:

a:用while循环,当抛出EOFException时表示数据读入完毕。

b:先调用File类的length()方法得到输入流的字节总数,字节总数除以4得到需要读入的次数,然后用for循

环来读入。

c:在写入d:\out1.bin时,先写入一个整数,表示一共写入了多少个数,例如先写入100,读入时先读第一

个数字,即100,然后循环100次读取其余的数字。

import java.io.*;public class BinaryFileReadWrite {public static void main(String[] args) {// 写入数据到文件try {DataOutputStream dos = new DataOutputStream(new FileOutputStream("d:\\out1.bin"));for (int i = 1; i <= 100; i++) {dos.writeInt(i);}dos.close();System.out.println("写入数据成功");} catch (IOException e) {System.out.println("写入数据失败:" + e.getMessage());}// 从文件读取数据并输出到屏幕try {DataInputStream dis = new DataInputStream(new FileInputStream("d:\\out1.bin"));int num;while (true) {try {num = dis.readInt();System.out.print(num + " ");} catch (EOFException e) {break;}}dis.close();} catch (IOException e) {System.out.println("读取数据失败:" + e.getMessage());}}
}

2、用字符流读写字符文件

要求:用FileWriter类将1,2,…,100,这100个数字写入到文件d:\out2.txt里,然后再用FileReader类将

d:\out2.txt的内读出来,并输出到屏幕上。

注意:将一个数字以字符流的方式写入文件时,要将该数字先转化为字符,然后写入到文件中。从文件中读

入字符数据时,可以一次读入一个字符,也可以一次读多个字符,放到字符数组中。

import java.io.*;public class CharacterFileReadWrite {public static void main(String[] args) {// 写入数据到文件try (FileWriter fw = new FileWriter("d:\\out2.txt")) {for (int i = 1; i <= 100; i++) {fw.write(Integer.toString(i));fw.write("\n"); // 换行}System.out.println("写入数据成功");} catch (IOException e) {System.out.println("写入数据失败:" + e.getMessage());}// 从文件读取数据并输出到屏幕try (FileReader fr = new FileReader("d:\\out2.txt")) {int data;while ((data = fr.read()) != -1) {System.out.print((char) data);}} catch (IOException e) {System.out.println("读取数据失败:" + e.getMessage());}}
}

3、用字节流读写字符文件

用FileOutputStream将1,2,…,100,这100个数字的每个数字按照字节数组方式写入到文件d:\out3.txt

里,然后再用FilelnputStream类按照一次读入一个字节数组的方式将d:\out3.txt的内的数据读出来,并输出到

屏幕上。

注意:将一个数字以字节数组的方式写入文件时,要将该数字先用String.valueOf()方法转化为字符,然后

用String的getBytes()方法变成一个字节数组,然后用FileOutputStream类将字节数组写入到文件中。从文件中

读入字符数据时,可以用FilelnputStream一次读入一个字节数组,然后把字节数组变成字符串。

import java.io.*;public class ByteFileReadWrite {public static void main(String[] args) {// 写入数据到文件try (FileOutputStream fos = new FileOutputStream("d:\\out3.txt")) {for (int i = 1; i <= 100; i++) {String numberAsString = String.valueOf(i);byte[] bytes = numberAsString.getBytes();fos.write(bytes);fos.write("\n".getBytes()); // 换行}System.out.println("写入数据成功");} catch (IOException e) {System.out.println("写入数据失败:" + e.getMessage());}// 从文件读取数据并输出到屏幕try (FileInputStream fis = new FileInputStream("d:\\out3.txt")) {byte[] buffer = new byte[1024]; // 缓冲区大小int bytesRead;while ((bytesRead = fis.read(buffer)) != -1) {String data = new String(buffer, 0, bytesRead);System.out.print(data);}} catch (IOException e) {System.out.println("读取数据失败:" + e.getMessage());}}
}

相关文章:

每天写java到期末考试(6.6)-java文件输入输出流实验

1、用字节流读写二进制文件 要求:用DataOutputStreamFileOutputStream类将1,2,…,100,这100个数字写入到文件 d:\out1.bin里,然后再用DatalnputStreamFilelnputStream类将d:\out1.bin的内读出来,并输出到屏幕上。 用DataOutputStreamFileOutputStream写入二进制数据时,直接调…...

Word2021中的The Mathtype DLL cannot be found问题解决(office 16+mathtype7+非初次安装)

问题描述&#xff0c;我的问题发生在word中无法使用自定义功能区中的mathtype 我的环境是&#xff1a;W11Word2021mathtype7 因为我是第二次安装mathtype7&#xff0c;所以我怀疑是因为没有卸载干净&#xff0c;于是我参考了下面这篇文章的做法 参考文章 1.首先重新卸载当前的…...

【Android面试八股文】在Java中传参数时是将值进行传递,还是传递引用?

在Java中传参数时是将值进行传递,还是传递引用? 这道题想考察什么? 是否了解什么是值传递和引用传递与真实场景使用,是否熟悉什么是值传递和引用传递在工作中的表现是什么? 考察的知识点 什么是值传递和引用传递的概念,两者对开发中编写的代码的影响 考生应该如何回…...

神经网络 torch.nn---Linear Layers(nn.Linear)

torch.nn - PyTorch中文文档 (pytorch-cn.readthedocs.io) torch.nn — PyTorch 2.3 documentation nn.Linear torch.nn.Linear(in_features, out_features, biasTrue, deviceNone, dtypeNone) 参数&#xff1a; in_features - 每个输入样本的大小out_features - 每个输出…...

PPT视频如何16倍速或者加速播放

有两种方式&#xff0c;一种是修改PPT本身&#xff0c;这种方式非常繁琐&#xff0c;不太推荐&#xff0c;还有一种就是修改视频本身&#xff0c;直接让视频是16倍速的视频即可。 如何让视频16倍速&#xff0c;我建议人生苦短&#xff0c;我用Python&#xff0c;几行代码&…...

【ai】DeepStream 简介

NVIDIA Metropolis 平台。 NVIDIA 大都会 利用视觉 AI 将来自数万亿物联网设备的数据转化为有价值的见解。 NVIDIA Metropolis 是一个应用程序框架、一套开发工具和合作伙伴生态系统,它将视觉数据和 AI 结合在一起,以提高各行各业的运营效率和安全性。它有助于理解数万亿个…...

如何学习使用淘宝API?淘宝API运营场景

学习使用淘宝API涉及对其功能、分类、调用方法及实际应用的综合理解。下面按部分详细解释如何系统地学习和掌握淘宝API的使用&#xff1a; 淘宝API接口入门 了解淘宝开放平台&#xff1a;淘宝开放平台为开发者提供了一个可以与淘宝数据进行交互的平台&#xff0c;涵盖了丰富的A…...

Java 面试题:Java 的动态代理是基于什么原理?

编程语言通常有各种不同的分类角度&#xff0c;动态类型和静态类型就是其中一种分类角度&#xff0c;简单区分就是语言类型信息是在运行时检查&#xff0c;还是编译期检查。 与其近似的还有一个对比&#xff0c;就是所谓强类型和弱类型&#xff0c;就是不同类型变量赋值时&…...

Python logging 模块详解

Python 的 logging 模块提供了一个强大而灵活的日志系统。它是 Python 标准库的一部分&#xff0c;因此可以在任何 Python 程序中使用。logging 模块提供了许多有用的功能&#xff0c;包括日志消息的级别设置、日志消息的格式设置、将日志消息输出到不同的目标&#xff0c;以及…...

http://account.battlenet.com.cn

http://account.battlenet.com.cn 魔兽战网 短信验证 查了下&#xff0c;我老早以前账号还在&#xff0c;纪念下&#xff0c;少玩游戏。...

java第二十课 —— 面向对象习题

类与对象练习题 编写类 A01&#xff0c;定义方法 max&#xff0c;实现求某个 double 数组的最大值&#xff0c;并返回。 public class Chapter7{public static void main(String[] args){A01 m new A01();double[] doubleArray null;Double res m.max(doubleArray);if(res !…...

Flask的模块化实践

既作为前端&#xff0c;又作为后端的我&#xff0c;写flask写了那么多行了&#xff0c;其实它们属于不同的模块&#xff0c;比如登录&#xff0c;注册&#xff0c;聊天&#xff0c;用户画像&#xff0c;那我觉得有必要分一下了&#xff0c;系统化的处理一下&#xff0c;不然找个…...

锁存器(Latch)的产生与特点

Latch 是什么 Latch 其实就是锁存器&#xff0c;是一种在异步电路系统中&#xff0c;对输入信号电平敏感的单元&#xff0c;用来存储信息。锁存器在数据未锁存时&#xff0c;输出端的信号随输入信号变化&#xff0c;就像信号通过一个缓冲器&#xff0c;一旦锁存信号有效&#…...

搜维尔科技:「案例」Faceware电影中面部动画的演变历程

面部动画是电影中角色表演的一个重要方面&#xff0c;尤其是在严重依赖电子动画、化妆效果和动作捕捉系统的奇幻电影中。在《龙与地下城&#xff1a;盗贼荣誉》电影中&#xff0c;龙裔角色的面部动画是一个复杂的系统&#xff0c;使该生物在大屏幕上栩栩如生。该系统依赖于一种…...

特征工程技巧—Bert

前段时间在参加比赛&#xff0c;发现有一些比赛上公开的代码&#xff0c;其中的数据预处理步骤值得我们参考。 平常我们见到的都是数据预处理&#xff0c;现在我们来讲一下特征工程跟数据预处理的区别。 数据预处理是指对原始数据进行清洗、转换、缩放等操作&#xff0c;以便为…...

更改 Docker 的默认存储位置

记录一下使用 Docker 遇到的问题&#xff0c;Docker 也用得比较多&#xff0c;最近发现根目录所在磁盘快满了&#xff0c;发现是 Docker 默认会将镜像和容器等数据保存在目录 /var/lib/docker 目录下&#xff0c;我们可以更改 Docker 的默认存储位置&#xff0c;比如改到数据盘…...

搜索与图论:图中点的层次

搜索与图论&#xff1a;图中点的层次 题目描述参考代码 题目描述 输入样例 4 5 1 2 2 3 3 4 1 3 1 4输出样例 1参考代码 #include <cstring> #include <iostream> #include <algorithm>using namespace std;const int N 100010;int n, m; int h[N], e[N]…...

NLP入门——数据预处理:编码规范化

编码规范化 在计算机中&#xff0c;我们需要将字符与字节序列之间建立起映射关系&#xff0c;这个过程被称为编码。有许多不同的编码方式&#xff0c;例如 ASCII、UTF-8、UTF-16 和 GBK 等。这些编码方式会将每个字符编码为一个或多个字节&#xff0c;以便于在计算机、网络和其…...

代码随想录算法训练营第四十八天| 70. 爬楼梯 (进阶)、322. 零钱兑换、279.完全平方数

70. 爬楼梯 &#xff08;进阶&#xff09; 题目链接&#xff1a;70. 爬楼梯 &#xff08;进阶&#xff09; 文档讲解&#xff1a;代码随想录/爬楼梯 &#xff08;进阶&#xff09; 状态&#xff1a;已完成&#xff08;0遍&#xff09; 解题过程 这几天博主忙着面试和入职&am…...

c++11 constexpr关键字

constexpr 是 C11 引入的一个关键字&#xff0c;它允许在编译时计算表达式的值&#xff0c;并将这些值存储在程序的常量部分中。这意味着 constexpr 变量和函数可以在编译时进行求值&#xff0c;从而避免了运行时的开销。 constexpr变量 constexpr 变量必须在编译时初始化&am…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...