Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
osx外壳can';不能从Java解码_Java_Macos_Base64 - Fatal编程技术网

osx外壳can';不能从Java解码

osx外壳can';不能从Java解码,java,macos,base64,Java,Macos,Base64,我在使用Base64编码时遇到了一个奇怪的行为 从OSX中的shell中,我执行以下操作: $ echo "hello world" | base64 -out my-file $ cat my-file aGVsbG8gd29ybGQK 然后运行以下Kotlin/Java代码: 导入java.nio.file.Files 导入java.nio.file.Path 导入java.util.Base64 主要内容(){ val content=Files.readAllBy

我在使用Base64编码时遇到了一个奇怪的行为

从OSX中的shell中,我执行以下操作:

$ echo "hello world" | base64 -out my-file
$ cat my-file 
aGVsbG8gd29ybGQK
然后运行以下Kotlin/Java代码:

导入java.nio.file.Files
导入java.nio.file.Path
导入java.util.Base64
主要内容(){
val content=Files.readAllBytes(路径“./my file”))
println(“内容=>${String(内容)}”)
val decode=Base64.getDecoder().decode(内容)
println(“==>$decode”)
}
但我有以下例外:

content=> aGVsbG8gd29ybGQK

Exception in thread "main" java.lang.IllegalArgumentException: Illegal base64 character a
    at java.base/java.util.Base64$Decoder.decode0(Base64.java:791)
    at java.base/java.util.Base64$Decoder.decode(Base64.java:567)
    at MainKt.main(Main.kt:8)
    at MainKt.main(Main.kt)
编辑: 更改base64使用其工作的另一个类解码的方式:

导入java.nio.file.Files
导入java.nio.file.Path
主要内容(){
val content=Files.readAllBytes(路径“./my file”))
val decode=org.apache.tomcat.util.codec.binary.Base64.decodeBase64(内容)
println(“==>${String(decode)}”)
}
印刷品:
==>hello world

您是否检查了
内容的值
?它与您的文件内容匹配吗?另外,您是否意识到
decode()
返回一个字节数组,即
decode
将具有类型
byte[]
?是的,内容是正确的,
decode
方法需要一个
byte[]
:(另一个是decode(字符串).稍微挖掘一下,
base64
命令生成的文件似乎在文件末尾有一个新行