空utf8文件占三字节的问题(Java空文本文件FileInputStream读取问题)

2023-11-11

1.文件创建情况:
在这里插入图片描述在这里插入图片描述
2.程序代码:

public class Demo01 {
    public static void main(String[] args) throws IOException {
        File file = new File("a.txt");
        long length = file.length();
        System.out.println("文件占了" + length + "个字符。");

        FileInputStream fis = new FileInputStream("a.txt");
        int len = 0;
        while ((len = fis.read()) != -1){
            System.out.println((char) len);
        }
        fis.close();
    }
}

3.输出结果:
在这里插入图片描述
4.原因:

查了一下:

 写道

“Unicode规范中有一个BOM的概念。BOM——Byte Order Mark,就是字节序标记。在这里找到一段关于BOM的说明:
引用:
在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输字符"ZERO WIDTH NO-BREAK SPACE"。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little- Endian的。因此字符"ZERO WIDTH NO-BREAK SPACE"又被称作BOM。
UTF-8编码的文件中,BOM占三个字节。”

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

空utf8文件占三字节的问题(Java空文本文件FileInputStream读取问题) 的相关文章

  • 使用 HttpUrlConnection Android 将 base64 编码的图像发送到服务器

    我正在尝试使用 HttpUrlConnection 将 base64 编码的图像发送到服务器 我遇到的问题是大多数图像均已成功发送 但有些图像会生成 FileNotFound 异常 我的图像编码代码可以在下面找到 public static
  • Google App Engine with Java - 运行 javac.exe 编译器时出错

    在 Windows XP 上 刚刚下载并解压谷歌应用程序引擎java sdk to C Program Files appengine java sdk 我已经安装了jdk C Program Files Java jdk1 6 0 20
  • URL.setURLStreamHandlerFactory

    我正在使用带有嵌入式 Jetty 的可执行 jar 开发一个 Web 应用程序 我的jar包含一个依赖jar jar in jar 我参考了JarRsrcLoader and RsrcURLStreamHandlerFactory由 Ecl
  • 无法使用 json 架构验证器根据预定义的 yaml 文件验证查询参数

    我需要根据预定义的 yaml 文件架构验证查询参数的架构 因此我使用 json 架构验证器 验证如何失败 我正在执行以下步骤 填充参数和相应的架构 final List
  • 使用 ChannelExec 的命令未执行 - Jsch

    我正在使用 Jsch 在服务器中创建一个文件并执行一些命令 对于文件创建 它工作正常 但是对于命令执行 则不然 它保持状态 1 仍在处理它 并永远保持该状态 这种情况发生在 shell 执行或我尝试成为 root 时 请按照以下方法操作 p
  • 字符串池可以包含两个具有相同值的字符串吗? [复制]

    这个问题在这里已经有答案了 字符串池可以包含两个具有相同值的字符串吗 String str abc String str1 new String abc Will the second statement with new operator
  • Java Microsoft Excel API [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 有多少种方法可以将位图转换为字符串,反之亦然?

    在我的应用程序中 我想以字符串的形式将位图图像发送到服务器 我想知道有多少种方法可以将位图转换为字符串 现在我使用 Base64 格式进行编码和解码 它需要更多的内存 是否有其他可能性以不同的方式做同样的事情 从而消耗更少的内存 现在我正在
  • 如何导入 org.apache.commons.lang3.ArrayUtils;进入 Eclipse [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我如何导入 org apache commons lang3 ArrayUtils 将库添加到 Ecl
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • 我想在java中使用XQuery进行Xml处理

    我想用XQuery用于从 java 中的 Xml 获取数据 但我没有得到需要为此添加哪个 Jar 我在谷歌上搜索了很多 但没有得到任何有用的例子 例如我得到以下链接 https docs oracle com database 121 AD
  • 带有 OpenId 提供程序的 Java Spring 安全性

    我有一个 spring MVC 应用程序 另一个客户端应用程序想要使用 open id connect 访问我的 spring 应用程序 如何在服务器端实现开放ID提供商 请帮忙 MITREid 连接 OpenID Connect Java
  • JSch中如何设置文件类型和文件传输模式?

    我使用 Apache Common NetFTPClient并设置了我的ftpClient在上传文件之前使用如下所示的方法 ftpClient setFileType FTP BINARY FILE TYPE ftpClient setFi
  • 改变for循环的顺序?

    我遇到一种情况 我需要根据用户输入以不同的顺序循环遍历 xyz 坐标 所以我是 3D 空间中的一个区域 然后是一组像这样的 for 循环 for int x 0 x lt build getWidth x for int y 0 y lt
  • 如何在Java媒体框架中学习.wav持续时间?

    我正在尝试使用 java 媒体框架将 mov 文件与 wav 文件合并 因此我需要知道它们的持续时间 我怎样才能做到这一点 任何想法 将不胜感激 您可以使用以下方式了解声音文件的持续时间 即 VitalyVal 的第二种方式 import
  • 如何初始化静态地图?

    你会如何初始化静态Map在Java中 方法一 静态初始化方法二 实例初始化 匿名子类 或者 还有其他方法吗 各自的优点和缺点是什么 这是说明这两种方法的示例 import java util HashMap import java util
  • 使用 JAD 反编译 java - 限制

    我正在尝试使用 Java 中的 JAD 反编译几个 jar 文件 我也尝试过 JD GUI 但运气更差 但出现了很多错误 一种类型 易于修复 似乎是内部类 但我也发现了这段代码 static int SWITCH TABLE atp com
  • 无法使用 wget 在 CentOS 机器上安装 oracle jdk

    我想在CentOS上安装oracle java jdk 8 我无法安装 java jdk 因为当我尝试使用命令安装 java jdk 时 root ADARSH PROD1 wget no cookies no check certific
  • 失败时石英重试

    假设我有一个这样配置的触发器
  • 如何捕获 try-with-resource 语句中 close 方法抛出的异常

    我正在读关于try with resourceJava 中的语句可用于指定任意数量的资源 try Resource1 res1 initialize code Resource1 res2 initialize code statement

随机推荐

  • mysql 批量修改自增数据_SqlServer Mysql数据库修改自增列的值及相应问题的解决方案...

    SQL Server 平台修改自增列值 由于之前处理过sql server数据库的迁移工作 尝试过其自增列值的变更 但是通过SQL 语句修改自增列值 是严格不允许的 直接报错 无法更新标识列 自增列名称 sql server我测试是2008
  • 微信小程序开发的基本流程

    一 微信小程序简介 1 微信小程序简称小程序 张小龙在微信公开课 Pro 上发布的小程序正式上线 时间是2017年1月9日 2 微信小程序这个词可以分解为 微信 和 小程序 两部分 1 其中 微信 可以理解为 微信中的 指的是小程序的执行环
  • selenium-鼠标操作ActionChains

    actionChains常用操作 move to element 移动到某个元素 悬停 click 点击 double click 双击 context click 右键
  • Eclipse导入项目出现No projects are found to import、中文乱码等问题

    首先说一下导入的步骤 1 打开eclipse 左上角选择File gt 选择Import 2 选择Existing Project into Workspace 3 选择第一行的select root directory 然后选择你要导入包
  • #PRBS# PRBS7高速串行总线的常用测试码型

    PRBS的定义 PRBS Pseudo Random Binary Sequence 伪随机二进制序列 PRBS 码具有 随机 特性 是因为在 PRBS 码流中 二进制数 0 和 1 是随机出现的 但是它又和真正意义上的随机码不同 这种 随
  • 基于GRU门控循环网络的时间序列预测matlab仿真,对比LSTM网络

    目录 1 算法运行效果图预览 2 算法运行软件版本 3 部分核心程序 4 算法理论概述 5 算法完整程序工程 1 算法运行效果图预览 LSTM GRU 2 算法运行软件版本 matlab2022a 3 部分核心程序 构建GRU网络模型 la
  • 如何通过Geth、Node.js和UNIX/PHP访问以太坊节点

    本文旨在说明通过Geth Node js如何访问以太坊节点和UNIX下PHP如何访问以太坊节点 说明如何通过RPC使用此 A 以太坊节点 对于以太坊主网络使用RPC url http 85 214 51 53 8545 对于Ropsten测
  • 线上生产问题系列之-@Async使用不当引发的血案

    现象描述 突然客户群里反馈 线上某功能处理出现严重拥堵 再处理不好就要切换渠道 这个功能就是一个通知功能 客户依赖通知结果去完成他的业务逻辑 但是这个通知非常缓慢 严重拥堵 背景描述 常有这样一个需求场景 为了提高请求的吞吐量 在一个请求链
  • 奇偶调序

    题目描述 输入一个整数数组 调整数组中数字的顺序 使得所有奇数位于数组的前半部分 所有偶数位于数组的后半部分 要求时间复杂度为O n 分析与解法 最容易想到的办法是从头扫描这个数组 每碰到一个偶数 拿出这个数字 并把位于这个数字后面的所有数
  • Scala针对容器的操作(遍历、映射、过滤、归约)案例

    Scala针对容器的操作 遍历 映射 一 遍历操作 二 映射操作 2 1 map方法 2 2 flatmap方法 三 过滤操作 四 归约操作 一 遍历操作 Scala容器的标准遍历方法foreach def foreach U f Elem
  • react+ts+echarts5.x按需导入实现世界地图

    registerMap注册世界地图 1 获取世界地图geoJSON格式的文件 获取地图的渠道 这个步骤很重要 本人找了很久都没找到世界地图的GeoJSON文件 这个网址可以提供 并且也提供了各个国家的GeoJSON a 根据 在线实例 确定
  • 前端js采坑,一个函数中同时有多个ajax()异步请求

    在近期的项目中 问题 多个异步请求执行时 有两个请求的路径是相同的 导致结果只执行当中的一个异步请求 add function vm showList false vm title 新增 vm role deptName null dept
  • 微服务架构-Day7

    学习目标 学会微服务架构 对应项目hotel demo 学习笔记 1 数据聚合 聚合 aggregations 可以让我们极其方便的实现对数据的统计 分析 运算 实现这些统计功能的比数据库的sql要方便的多 而且查询速度非常快 可以实现近实
  • display设为inline-block时引发的高度问题,大坑

    今天在写小程序 点击让这个遮罩层显示 结果一直下移 莫名其妙 解决方案 在元素的CSS中添加 vertical align bottom
  • SQL-使用视图

    什么是视图 它们怎样工作 何时使用它们 如何利用视图简化执行的某些SQL操作 1 使用视图的原因 A 重用SQL语句 B 简化复杂的SQL操作 在编写查询后 可以方便地重用它而不必知道其基本查询 C 使用表的一部分而不是整个表 D 保护数据
  • 【Python】科学计算库Scipy简易入门

    0 导语 Scipy是一个用于数学 科学 工程领域的常用软件包 可以处理插值 积分 优化 图像处理 常微分方程数值解的求解 信号处理等问题 它用于有效计算Numpy矩阵 使Numpy和Scipy协同工作 高效解决问题 Scipy是由针对特定
  • vue-组件按需加载

    组件按需加载 路由配置 path name component gt import views vue 按需加载 在vue中配置路由时 可以在头部先引入组件 然后下面定义路由时 在指向到具体使用的组件 这种是页面运行时 组件全部加载 占内存
  • 严重: 子容器启动失败 java.util.concurrent.ExecutionException 信息: 正在摧毁协议处理器 ["http-nio-80"]WARNING: An illegal

    话不多说直接上错误 解决方案 由于一开始以为是tomcat和eclipseEE出现故障 将两个软件重新下载并配置环境但错误没有解决 然后又检查了JDK版本也没问题 最后肯定了是代码的问题 仔细检查后发现是servlet映射地址写重了 后来又
  • HAL库的RCC简介

    一 RCC的时钟树总览 时钟输入源有四个 选择器 预 分频器和倍频器 最终设置的频率 SYSCLK系统时钟 SYSCLK可以有三种方式得到 1 HSI内部高速时钟用的是RC振荡器 频率为8M 精度不高 没有经过分频器和倍频器 这种方式得到的
  • 空utf8文件占三字节的问题(Java空文本文件FileInputStream读取问题)

    1 文件创建情况 2 程序代码 public class Demo01 public static void main String args throws IOException File file new File a txt long