這是你的原代碼:
public static List<String> readFile(String filename) throws Exception {
String line = null;
List<String> records = new ArrayList<String>();
BufferedReader bufferedReader = new BufferedReader(new FileReader(filename));
while ((line = bufferedReader.readLine()) != null) {
records.add(line.trim());
}
bufferedReader.close();
return records;
}
將其更改爲:
public static List<String> readFile(String filename) throws Exception {
return Files.readAllLines(Paths.get(filename), StandardCharsets.US_ASCII);
}
記得導入相關的java.nio包或程序會給你一個編譯錯誤。
這裏是一個完全正常的程序:
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
public class Tests {
public static void main(String[] args) {
String filename = "C:\\Users\\username\\Desktop\\test.txt";
try {
for(String s : readFile(filename)) {
System.out.println(s);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static List readFile(String filename) throws Exception {
return Files.readAllLines(Paths.get(filename), StandardCharsets.US_ASCII);
}
}
UTF8到ASCII轉換沒有很好地定義爲UTF-8有很多比ASCII多個字符。在您的轉換中,如果遇到不是ascii字符的UTF8字符,您希望做什麼? – vandale
您是指基本ASCII字符集還是其中一個*增強型* ASCII字符集?如果只是基數,並且您的數據*可以存儲在基本ASCII中,則不需要轉換,因爲Unicode包含所有具有相同碼點值的基本ASCII字符。 – Andreas
是的基本字符集,但在我原來的文件中,我有這樣的字符:Šaltenis,Simonas –