Я хочу преобразовать коды символов из UTF-8 в Shift-JIS в файле data.txt
.
Что мне делать?
Это мой код, но он неправильный.
Он страдает от проблем, как показано ниже.
- Не работать в искровых условиях.
ошибка:
java.lang.IndexOutOfBoundsException при обработке списка списков
- В результате получается файл с кодировкой символов ANSI, а не Shift-jis.
import scala.io.Source
import scala.io._
import scala.collection.mutable.ArrayBuffer
import scala.collection.mutable
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.File
import java.io.FileInputStream
import java.io.FileOutputStream
import java.io.InputStreamReader
import java.io.OutputStreamWriter
import org.apache.spark.SparkContext._
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.SparkSession
object uconv {
def main(args: Array[String]): Unit = {
val sparkSession = SparkSession.builder.master("local").appName("Spark_Accumulator").getOrCreate()
val fis: FileInputStream = new FileInputStream(new File("data.txt"))
val in: BufferedReader = new BufferedReader(new InputStreamReader(fis, "UTF8"))
val fos: FileOutputStream = new FileOutputStream(new File("output.txt"))
val out: BufferedWriter = new BufferedWriter(new OutputStreamWriter(fos, "SJIS"))
val len: Int = 80
val buf: Array[Char] = Array.ofDim[Char](len)
var numRead: Int = 0
while ((numRead = in.read(buf, 0, len)) != -1)
out.write(buf, 0, numRead)
out.close()
in.close()
}
}
Пожалуйста, исправьте код, чтобы помочь мне правильно.