how2j.cn


工具版本兼容问题
InputStream字节输入流
OutputStream字节输出流
用于以字节的形式读取和写入数据


本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频



7分31秒
本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器



步骤 1 : ASCII码 概念   
步骤 2 : 以字节流的形式读取文件内容   
步骤 3 : 以字节流的形式向文件写入数据   
步骤 4 : 练习-写入数据到文件   
步骤 5 : 答案-写入数据到文件   
步骤 6 : 练习-拆分文件   
步骤 7 : 答案-拆分文件   
步骤 8 : 练习-合并文件   
步骤 9 : 答案-合并文件   

所有的数据存放在计算机中都是以数字的形式存放的。 所以字母就需要转换为数字才能够存放
比如A就对应的数字65,a对应的数字97. 不同的字母和符号对应不同的数字,就是一张码表。
ASCII是这样的一种码表。 只包含简单的英文字母,符号,数字等等。 不包含中文,德文,俄语等复杂的。

示例中列出了可见的ASCII码以及对应的十进制和十六进制数字,不可见的暂未列出


步骤 2 :

以字节流的形式读取文件内容

edit
InputStream是字节输入流,同时也是抽象类,只提供方法声明,不提供方法的具体实现。
FileInputStream 是InputStream子类,以FileInputStream 为例进行文件读取
package stream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; public class TestStream { public static void main(String[] args) { try { //准备文件lol.txt其中的内容是AB,对应的ASCII分别是65 66 File f =new File("d:/lol.txt"); //创建基于文件的输入流 FileInputStream fis =new FileInputStream(f); //创建字节数组,其长度就是文件的长度 byte[] all =new byte[(int) f.length()]; //以字节流的形式读取文件所有内容 fis.read(all); for (byte b : all) { //打印出来是65 66 System.out.println(b); } //每次使用完流,都应该进行关闭 fis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
步骤 3 :

以字节流的形式向文件写入数据

edit
OutputStream是字节输出流,同时也是抽象类,只提供方法声明,不提供方法的具体实现。
FileOutputStream 是OutputStream子类,以FileOutputStream 为例向文件写出数据

注: 如果文件d:/lol2.txt不存在,写出操作会自动创建该文件。
但是如果是文件 d:/xyz/lol2.txt,而目录xyz又不存在,会抛出异常
以字节流的形式向文件写入数据
package stream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; public class TestStream { public static void main(String[] args) { try { // 准备文件lol2.txt其中的内容是空的 File f = new File("d:/lol2.txt"); // 准备长度是2的字节数组,用88,89初始化,其对应的字符分别是X,Y byte data[] = { 88, 89 }; // 创建基于文件的输出流 FileOutputStream fos = new FileOutputStream(f); // 把数据写入到输出流 fos.write(data); // 关闭输出流 fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
步骤 4 :

练习-写入数据到文件

edit  姿势不对,事倍功半! 点击查看做练习的正确姿势
以字节流的形式向文件写入数据 中的例子,当lol2.txt不存在的时候,是会自动创建lol2.txt文件的。
但是,如果是写入数据到d:/xyz/lol2.txt,而目录xyz又不存在的话,就会抛出异常。
那么怎么自动创建xyz目录?
如果是多层目录 d:/xyz/abc/def/lol2.txt 呢?
练习-写入数据到文件
步骤 5 :

答案-写入数据到文件

edit
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
查看本答案会花费3个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 中级总计0个答案 (总共需要0积分)
查看本答案会花费3个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 中级总计0个答案 (总共需要0积分)
账号未激活 账号未激活,功能受限。 请点击激活
步骤 6 :

练习-拆分文件

edit  姿势不对,事倍功半! 点击查看做练习的正确姿势
找到一个大于100k的文件,按照100k为单位,拆分成多个子文件,并且以编号作为文件名结束。
比如文件 eclipse.exe,大小是309k。
拆分之后,成为
eclipse.exe-0
eclipse.exe-1
eclipse.exe-2
eclipse.exe-3
练习-拆分文件
步骤 7 :

答案-拆分文件

edit
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
查看本答案会花费5个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 中级总计0个答案 (总共需要0积分)
查看本答案会花费5个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 中级总计0个答案 (总共需要0积分)
账号未激活 账号未激活,功能受限。 请点击激活
步骤 8 :

练习-合并文件

edit  姿势不对,事倍功半! 点击查看做练习的正确姿势
把上述拆分出来的文件,合并成一个原文件。

以是否能正常运行,验证合并是否正确
步骤 9 :

答案-合并文件

edit
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
查看本答案会花费5个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 中级总计0个答案 (总共需要0积分)
查看本答案会花费5个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 中级总计0个答案 (总共需要0积分)
账号未激活 账号未激活,功能受限。 请点击激活


HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2024-09-11 文件拆分和合并答案 欢迎指正
Zzz112138




源文件存在: D:\software\nonLoaded\eclipse\eclipse.exe, 其大小为: 326,640字节 输出子文件: D:\software\nonLoaded\eclipse\eclipse.exe-0.dat, 其大小为: 102,400字节 输出子文件: D:\software\nonLoaded\eclipse\eclipse.exe-1.dat, 其大小为: 102,400字节 输出子文件: D:\software\nonLoaded\eclipse\eclipse.exe-2.dat, 其大小为: 102,400字节 输出子文件: D:\software\nonLoaded\eclipse\eclipse.exe-3.dat, 其大小为: 19,440字节 合并子文件输出: D:\software\nonLoaded\eclipse\eclipse-source.exe, 其大小为: 326,640字节





回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢


2024-07-06 结果检测通过的文件拆分、合并方法
虚心求学




1.将原始文件拆分为若干子文件 2.将上述若干子文件合并为单个文件 3.检测原始文件经过上述两个过程后,是否有损失或者错误。 结果表明,经过编写的程序拆分、合并后,数据无损,且与原始数据完全一致。





回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢


2024-03-28 解法之一吧
2023-06-15 文件拆分和合并的答案
2022-09-08 文件拆分和合并参考


提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 166 条以前的提问,请 点击查看

提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢