原方法
public static void loadFile(){
try {
File file = new File("Account/userAccount.txt");
if(!file.exists()){
System.out.println("文件不存在!");
}
BufferedReader br = new BufferedReader(new FileReader(file));//緩衝字節流讀取文件賬戶密碼
String s = null;
while((s = br.readLine())!=null){//每行讀取賬戶密碼
String[] splits=s.split("\\s");
Util.map.put(splits[0], splits[1]);
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
換成字節流讀取之後方法:
public static void loadFile(){
try {
Resource resource = new ClassPathResource("Account/userAccount.txt");
InputStream inputStream = resource.getInputStream();
if(!resource.exists()){
System.out.println("文件不存在!");
}
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
BufferedReader bufferreader = new BufferedReader(new InputStreamReader(bufferedInputStream,StandardCharsets.UTF_8));
String s = null;
while((s = bufferreader.readLine())!=null){//每行讀取賬戶密碼
String[] splits=s.split("\\s");
Util.map.put(splits[0], splits[1]);
}
bufferreader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
關鍵代碼:
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
BufferedReader bufferreader = new BufferedReader(new InputStreamReader(bufferedInputStream,StandardCharsets.UTF_8));
注意:根據文件編碼選擇正確的編碼格式。