衡水市网站建设_网站建设公司_阿里云_seo优化
2025/12/25 0:03:52 网站建设 项目流程

1.io流定义

存储(output)和读取(input)数据的解决方案。(以程序为视角)

2.io流体系

屏幕截图 2025-12-24 000821

纯文本文件指能用windous自带的记事本打开的文件

屏幕截图 2025-12-24 003210

字节输出流(FileOutputStream)步骤和细节

1.第一步相当于在两座山之间架起了一座高桥
2.第二步相当于有一辆车从一座山开到了另一座山
3.第三步相当于把这座桥给打碎了
屏幕截图 2025-12-24 010527

1.步骤2中write每次只能输入单个字符

2.步骤1细节3中清空的实质是创建一个新的对象覆盖了原对象

3.步骤3实质是停止了程序对文件的占用

如果要一次写入多个字母,要将内容写在byte【】数组中,向write中传递数组来一次写入多个字母。同时有方法可以决定传入数组的开头和距离。

屏幕截图 2025-12-24 230950

传递字符串的做法

屏幕截图 2025-12-24 231510

换行和续写

1.换行

将换行符( \r\n)直接写出,java中对此有便利,只写(\n)或(\r)java会自动补全。

屏幕截图 2025-12-24 231809

2.续写(write函数直接使用会覆盖原本的内容)

原因:FileOutputStream的源代码有一个append(加入)开关,默认为false,要手动改为true

屏幕截图 2025-12-24 232223

字节输入流(FileInputStream)的步骤与细节

步骤和输出流差不多,只是第二步从写改为了读

1.read函数原函数里面相当于有一个迭代器,开始时有一个指针,使用一次,指针就往右走一次。

所以一个程序里面一般只有一个read函数,避免指针多次移动,遍历有遗漏。

2.read一次制度一个字符,返回字符的ascll值,要打印原字符需要(char)强转。read读到文件末尾会返回(-1).

3.如果FileInputStream创建的时候文件不存在,直接报错不会自动生成

4.要一次性读完文件内的内容,可以while循环,循环条件是read返回值不为(-1)

小文件拷贝

屏幕截图 2025-12-24 234616

int 一个变量循环接收read的读到的数字,再一个一个写入另一个文件中

大文件拷贝(改进文件传输慢的问题)

文件传输的原理

屏幕截图 2025-12-24 234945

为了加快文件传输速度,read一次可以接受一个byte数组的长度的内容

屏幕截图 2025-12-25 000059

屏幕截图 2025-12-24 235316

read到的内容会传进数组之中,raed(bytes)返回接受的数据的数量,数组会尽可能多的接收数据

屏幕截图 2025-12-24 235543

屏幕截图 2025-12-24 235608

每次read到的内容实际上会覆盖原来的内容,这会导致数据重复错误存在。为了解决它,可以用read中确定接收开始索引与长度构造

屏幕截图 2025-12-24 235947

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询