2017-06-21 12 views
0

私はScalaを初めて使い、scala.io.Sourceクラスを使いたいと思います。しかし、それはCharで動作することがわかりましたが、Byteでは動作しません。私が混乱していることは、Charがエンコード/プラットフォームに依存していることです。つまり、UTF-8または "windows-1251"でエンコードされた文字を使用できます。なぜソースはcharで動作しますか?

windows-1251は厳密に1バイトエンコーディングです...生のバイトで操作する方法はありますか?

+1

Scalaの 'Char'sはUTF-16であり、プラットフォームに依存しません。 –

+0

@ n.m。さらに悪い。私は文字列windows-1251をエンコードしています。だから 'scala.io.Source'は適用されないのですか? –

+1

ソースは文字指向で、テキストデータ用です。テキストデータを操作したい場合はscala.io.Sourceが良い選択です。バイナリストリームが必要な場合は、javaのInputStreamの使用を検討してください。 –

答えて

5

あなたはwindows-1251としてCharを読みたい場合は、あなたが好きそれを行うことができます。

scala.io.Source.fromFile(myFile, "windows-1251") 

は、この読み取りのためのエンコーディングを設定します。

関連する問題