gpt4 book ai didi

java - 如何使用 scala.io.Source 删除字节顺序标记?

转载 作者:行者123 更新时间:2023-12-02 11:51:43 25 4
gpt4 key购买 nike

Byte order mark使用 scala.io.Source 读取文件时使我的正则表达式失败。 This answer是一个使用java.io的轻量级解决方案。 scala.io.Source 是否有类似的东西,或者我是否必须因为一个单个字节而恢复到 Java?

最佳答案

基于 Joe K 在评论中的想法,并使用 Andrei Punko's answer对于 Java 中的问题和 Alvin Alexander's Scala code ,将可能包含字节顺序标记的文件读取到字符串数组中的最简单的解决方案是:

@throws[IOException]
def skip(reader: Reader): Unit = {
reader.mark(1)
val possibleBOM = new Array[Char](1)
reader.read(possibleBOM)
if (possibleBOM(0) != '\ufeff') reader.reset
}

val br = new BufferedReader(new InputStreamReader(new FileInputStream(file)))
skip(br)

val lines = {
val ls = new ArrayBuffer[String]()
var l: String = null
while ({l= br.readLine; l != null}) {
ls.append(l)
}
br.close
ls.toArray
}

关于java - 如何使用 scala.io.Source 删除字节顺序标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47838193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com