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

java汉字如何通过字节传输_java 20 - 8 字节流的文件复制以及汉字在计算机中的存储方式...

复制文本文件:把当前目录下的FileIntputStream.java文件里面的内容复制到当前目录的b.txt文件中

分析:

数据源:

FileIntputStream.java -- 读取数据 -- FileInputStream

目的地:

b.txt --- 写入数据 ---- FileOutputStream

思路:首先读取数据源的内容,然后把读取到的内容再写入到目的地中

前提:数据源存在,否则会报错

1 importjava.io.FileInputStream;2 importjava.io.FileOutputStream;3 importjava.io.IOException;4 public classCopyFileDemo1 {5

6 public static void main(String[] args) throwsIOException {7 //首先从数据源中读取数据8 //创建字节输入流

9 FileInputStream in = new FileInputStream("a.txt");10 //创建字节输出流

11 FileOutputStream out = new FileOutputStream("b.txt");12 //使用读取字节的方式读取数据

13 int by = 0;14 while((by = in.read()) != -1){15 //读取到的数据直接输入到目的地中

16 out.write(by);17 }18

in.close();

out.close();

19 }20

21 }

在上述的a.txt文件中,就算是中文,也能够完整复制到b.txt里面。

原因:因为这里是从数据源中读取数据后,并没有进行转码,又直接复制到目的地中。

说到这里,就有个疑问:计算机是怎么对汉字进行存储的?

String s = "中国是我们的祖国;

byte[] bys =s.getBytes();

System.out.println(Arrays.toString(bys));

结果是:[-42, -48, -71, -6, -54, -57, -50, -46, -61, -57, -75, -60, -41, -26, -71, -6]

从就可以看出,在计算中,汉字的存储是分成两个字节的:

第一个字节肯定是负数。

第二个字节常见的是负数,可能有正数。但是没影响。

复制图片、视频、MP4之类的一样的操作,只是后两者的读取数据方式应该用

int read(byte[] b):一次读取一个字节数组

需求:复制D:\music\音乐里的Beyond - 真的爱你.mp3到文件目录下

1 //使用字节输入流输出mp3文件2 //定义字节输入流对象

3 FileInputStream in = new FileInputStream("D:\\music\\音乐\\Beyond - 真的爱你.mp3");4 //定义字节输出流对象

5 FileOutputStream ou = new FileOutputStream("真的爱你.mp3");6 //使用输入字节数组的方法输入内容7 //定义一个字节数组

8 byte[] by = new byte[1024];9 int i =in.read();10 while(i != -1){11 //使用字节输出流输入内容

12 ou.write(by,0,i);13 }14 in.close();15 ou.close();

字节流的两种读取方式的图解:

7b17a97fb28139d14508bfcb030aa750.png

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 《赢在用户》——UI设计的启蒙书
  • XML 路径语言(XPath) 版本 1.0
  • JAVA猜测随机整数_Java程序设计:产生随机数,让用户猜测
  • addslashes php,PHP如何使用addslashes()函数?(代码示例)
  • OWB和ODM的产品信息
  • sumblime text3写php,Sublime Text3及Phpstorm开发工具的代码片段管理
  • 软件技术大会演讲题目敲定:《领域驱动设计在大规模项目中的应用实践》
  • php icouv,PHP_简单谈谈favicon,favicon.ico介绍 favicon.ico是个什 - phpStudy
  • 触发器的简单应用
  • opencart mail.php,opencart联系表单邮件失败的解决办法
  • 创业者应避免的六件事
  • 113 php的位运算符不包括,【后端开辟】PHP的位运算符不包括谁人标记
  • SharpDevelop
  • matlab上机实习报告,Matlab上机实习报告
  • The Journey of the Lunch Launcher and Store and Forward Messaging
  • Angular Elements 及其运作原理
  • js中的正则表达式入门
  • Sequelize 中文文档 v4 - Getting started - 入门
  • Spring核心 Bean的高级装配
  • web标准化(下)
  • 对象管理器(defineProperty)学习笔记
  • 给初学者:JavaScript 中数组操作注意点
  • 跨域
  • 聊聊flink的TableFactory
  • 前端路由实现-history
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 栈实现走出迷宫(C++)
  • C# - 为值类型重定义相等性
  • Spring Batch JSON 支持
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • (04)odoo视图操作
  • (阿里云万网)-域名注册购买实名流程
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (接上一篇)前端弄一个变量实现点击次数在前端页面实时更新
  • (六)DockerCompose安装与配置
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (全注解开发)学习Spring-MVC的第三天
  • (转)mysql使用Navicat 导出和导入数据库
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • (转)使用VMware vSphere标准交换机设置网络连接
  • ****三次握手和四次挥手
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET MVC 验证码
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • .Net转前端开发-启航篇,如何定制博客园主题
  • ::before和::after 常见的用法
  • @JSONField或@JsonProperty注解使用
  • [ 攻防演练演示篇 ] 利用通达OA 文件上传漏洞上传webshell获取主机权限
  • [ 网络通信基础 ]——网络的传输介质(双绞线,光纤,标准,线序)
  • [《百万宝贝》观后]To be or not to be?
  • [ABC275A] Find Takahashi 题解