タグ

FIOとreadに関するkiyo_hikoのブックマーク (2)

  • JavaでUTF-8のBOMに対処する - 万象酔歩

    この記事は「 Javaでファイルオープン:文字コードや追加モードなど」の補助記事です。 JavaでBOM付きUTF-8ファイルを読む 媒体上の文字コード規格、UTF-8には、規格策定者の迷いのため 一時期、先頭に3バイトのBOMと呼ばれる、バイト並び識別マーク を置く仕様がありました。 現在はBOMはまず使われることはありませんが、Windows付属の「メモ帳」という 簡易エディタでUTF-8ファイルをうっかり作成してしまうと、ファイル先頭に BOMが付いてしまいます。 残念なことにJavaではBOM付きのUTF-8ファイルをまともに 読むことができません。 先頭がBOMの場合スキップする方法 対処法は色々考えられますが、ここでは、BufferedInputStreamを被せ、 先頭がBOMの場合スキップし、BOMでない場合先頭まで巻き戻す形を 示します。 import java.io.*

    JavaでUTF-8のBOMに対処する - 万象酔歩
    kiyo_hiko
    kiyo_hiko 2013/08/28
    「BOMはまず使われることはありません…メモ帳という 簡易エディタでUTF-8ファイルをうっかり作成してしまうと…BOMが付いてしまいます。残念なことにJavaではBOM付きのUTF-8ファイルをまともに 読むことができません」
  • LISPMEMO

    Common Lisp による日常作業 CSV ファイルを読む (read-line, read-line-into, simple-stream-read-line とか) 以前のエントリ CSV ファイルを読むコード で、ちょろっと いかにも Scheme なコードなのでループと状態マシンに書き直すとかの高速化の余地がありますね。 今迄ちっこいファイルしか読んでなかったので、ちょっとメモリ使用量が多いなー。 まぁ、Gauche と違って immutable な文字列じゃないんで共有とかできないから効率わるいんじゃろ。 などと目を背けていたのですが、ある程度の規模の CSV を読んだら途端に性能問題が。うがぁ。 簡単に体感できる量だと 20MB 程度のデータを読み書きしてみればわかります。 (use text.csv) (length (call-with-input-file "KEN

    kiyo_hiko
    kiyo_hiko 2013/08/28
    read-sequence、read-line-into
  • 1