从 java/android 中的文本文件读取法语单词时出现问题
Issue in reading french word from text file in java/android
我正在尝试读取法语文件内容(逐个字符)并检查其中的 ascii 值以执行某些操作 operation.Everything 包含英文字母表时工作正常但对于像 àéèé 这样的字符,我遇到了一些问题.
例如,如果我的文件内容是法语,我得到的输出是法语。
在这里,我附上了我的代码,请看一下并指导我解决这个问题。
File file = new File("C:\text.txt");
fis = new BufferedInputStream(new FileInputStream(file));
char current;
char org;
while (fis.available() > 0) {
current = (char) fis.read(); // to read character
// from file
int ascii = (int) current; // to get ascii for the
// character
org = (char) (ascii); // to get the actual
// character
if (ascii == 10) {
resultString = resultString.append(",'"
+ strCompCode + "'");
dbhelpher.addDataRecord(resultString.toString());
resultString.setLength(0);
} else if (ascii != 13) { // other than the ascii
// 13, the character are
// appended with string
// builder
resultString.append(org);
}
}
fis.close();
这里我需要阅读文本文件中的法文字符。
您的建议会大大appreciated.Thanks提前
您应该使用 InputStreamReader
和 UTF8
编码:
InputStreamReader reader = new InputStreamReader(fis, "UTF8");
我建议您使用 Apache Commons IO 库。使用一行代码,您可以从文件中读取所有行,然后在 for
循环中处理它们:
List<String> lines = IOUtils.readLines(fis, "UTF8");
for (String line: lines) {
dbhelper.addDataRecord(line + ",'" + strCompCode + "'");
}
您可以将其添加到 build.gradle
中:
dependencies {
...
compile 'commons-io:commons-io:2.4'
...
}
我正在尝试读取法语文件内容(逐个字符)并检查其中的 ascii 值以执行某些操作 operation.Everything 包含英文字母表时工作正常但对于像 àéèé 这样的字符,我遇到了一些问题.
例如,如果我的文件内容是法语,我得到的输出是法语。 在这里,我附上了我的代码,请看一下并指导我解决这个问题。
File file = new File("C:\text.txt");
fis = new BufferedInputStream(new FileInputStream(file));
char current;
char org;
while (fis.available() > 0) {
current = (char) fis.read(); // to read character
// from file
int ascii = (int) current; // to get ascii for the
// character
org = (char) (ascii); // to get the actual
// character
if (ascii == 10) {
resultString = resultString.append(",'"
+ strCompCode + "'");
dbhelpher.addDataRecord(resultString.toString());
resultString.setLength(0);
} else if (ascii != 13) { // other than the ascii
// 13, the character are
// appended with string
// builder
resultString.append(org);
}
}
fis.close();
这里我需要阅读文本文件中的法文字符。 您的建议会大大appreciated.Thanks提前
您应该使用 InputStreamReader
和 UTF8
编码:
InputStreamReader reader = new InputStreamReader(fis, "UTF8");
我建议您使用 Apache Commons IO 库。使用一行代码,您可以从文件中读取所有行,然后在 for
循环中处理它们:
List<String> lines = IOUtils.readLines(fis, "UTF8");
for (String line: lines) {
dbhelper.addDataRecord(line + ",'" + strCompCode + "'");
}
您可以将其添加到 build.gradle
中:
dependencies {
...
compile 'commons-io:commons-io:2.4'
...
}