从UTF-8文本文件中读取数据并进行标记化

2 java file-io encoding

我正在尝试从文本文件中读取UTF-8并进行一些标记化,但我遇到了编码问题:

try {
    fis = new FileInputStream(fName);
} catch (FileNotFoundException ex) {
    //...
}

DataInputStream myInput = new DataInputStream(fis);
    try {
        while (thisLine = myInput.readLine()) != null) {
            StringTokenizer st = new StringTokenizer(thisLine, ";");
            while (st.hasMoreElements()) {
            // do something with st.nextToken();
    }
}
} catch (Exception e) {
//...
}
Run Code Online (Sandbox Code Playgroud)

和DataInputStream没有任何参数来设置编码!

Pet*_*rey 5

让我引用Javadoc这个方法.

DataInputStream.readLine()

已过时.此方法无法将字节正确转换为字符.从JDK 1.1开始,读取文本行的首选方法是通过BufferedReader.readLine()方法.使用DataInputStream类读取行的程序可以通过替换表单的代码转换为使用BufferedReader类:

     DataInputStream d = new DataInputStream(in);
Run Code Online (Sandbox Code Playgroud)

有:

     BufferedReader d
          = new BufferedReader(new InputStreamReader(in));
Run Code Online (Sandbox Code Playgroud)

顺便说一句:JDK 1.1于1997年2月问世,所以这对你来说不是什么新鲜事.

想想如果你读过Javadoc,每个人都会节省多少时间.;)