我刚遇到getResourceAsStream()一个非常奇怪的问题。
在我的产品项目JUnit测试中,我使用getResourceAsStream()读取测试数据,我发现getResourceAsStream()有时会替换一些字节:
byte[] fileBytes = FileUtils.readFileToByteArray(new File(
"resources/test/parser/test-short-enc.xml"));
printBytes(fileBytes);
byte[] classPathBytes = IOUtils.toByteArray(ParserTest.class
.getResourceAsStream("/test/parser/test-short-enc.xml"))
printBytes(classPathBytes);
在此项目中的输出如下所示:
D0 9A D1 80 D0 B8 D0 BC D0 B8 D0 BD D0 B0 D0 BB D0 B8 D1 81 D1 82 D0 B8 D0
BA D0 B0
D0 9A D1 80 D0 B8 D0 BC D0 B8 D0 BD D0 B0 D0 BB D0 B8 D1 3F D1 82 D0 B8 D0
BA D0 B0
之后,我决定创建一个小的错误显示项目,并作为示例将其托管在Github上。这是链接:https : //github.com/snowindy/getResourceAsStream-
Bug
我基本上复制了所需的代码,运行后,看不到问题重现:
D0 9A D1 80 D0 B8 D0 BC D0 B8 D0 BD D0 B0 D0 BB D0 B8 D1 81 D1 82 D0 B8 D0
BA D0 B0
D0 9A D1 80 D0 B8 D0 BC D0 B8 D0 BD D0 B0 D0 BB D0 B8 D1 81 D1 82 D0 B8 D0
BA D0 B0
printBytes函数如下所示:
public static void printBytes(byte[] bv) {
System.out.println();
for (byte b : bv) {
System.out.print(' ');
System.out.print(String.format("%02X", b));
}
}
会是什么?
我使用Eclipse,UTF-8工作区编码,该文件包含西里尔字母“Криминалистика”,它是UTF-8 no-BOM文件。
对于这两个项目,我都使用JavaSE-1.6(jdk1.6.0_29),我使用Windows 7 OS,Windows-1252系统编码。
更新
我终于能够重现该错误。我更新了该项目,以便您可以对其进行测试:html" target="_blank">https : //github.com/snowindy/getResourceAsStream-
Bug
仅当您在maven pom.xml中包含此代码时,该错误才会出现。这意味着它是特定于Maven的
<build>
<sourceDirectory>src</sourceDirectory>
<resources>
<resource>
<directory>resources</directory>
<filtering>true</filtering>
</resource>
</resources>
...
好的,我知道了。
此配置解决了该问题:
<project>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
...
问题内容: def size_of_dir(dirname): print(“Size of directory: “) print(os.path.getsize(dirname)) 是有问题的代码。dirname是一个目录,其中包含 130个 文件,每个文件约 1kb 。当我调用此函数时,它返回 4624 ,这 不是 目录的大小…为什么? 问题答案: 此值(4624B)代表的大小 文件 是 描
我将这个字符串从客户端发送到服务器: 该字符串是由服务器打印出来的,所以它是正确的。 “AR”是数据包名称,值是弓箭手将要射出的箭的速度。 这里出什么问题了?
在我的CentOS7工作站上,我有elasticsearch(ver.5.5.1)服务,按映像:docker.elastic.co/elasticsearch/elasticsearch:5.5.1。 我的工作站上的文件系统类型是XFS。 我有.tar存档文件/usr/share/elasticsearch/data/nodes/0/包含索引结构:(来自kibana的JSON) 开始记录我的JVM
我正在使用postgis计算两个地理坐标之间的距离。 它返回给我53536.743496517米,大约等于54公里,但实际距离是103公里,我通过http://boulter.com/gps/distance/ 我在询问中是否做错了什么?
我正在尝试在代码中使用NSPredicate搜索名称。搜索工作正常,但不会返回适当的结果。当我搜索一个名称(例如“Colin”)时,它会返回表中的所有其他名称或另一个名称(例如“Mike”),但如果我输入一个不存在的随机字符串,它会返回:“找不到结果”。当我在搜索栏中键入一个名字(例如Lisa)时,我希望它能找到这个名字(Lisa)并返回它,但它没有这样做 这是我的代码: 自己name返回表中的所
问题内容: 我正在使用接受json响应的jquery ajax调用: 在我的php后端函数中,我在一个简单的数组上使用json_encode,如下所示: 但是 alert(msg.hello) 为我返回 未定义 。这是怎么了?另外,在我的 console.log中, 我能够得到如下输出: 问题答案: 使用的返回数据: