3
我正在編寫一些基本的文件I/O代碼,並認爲我可能會利用Java 8 Streams;特別是過濾。最終目標是讀入文件並僅標記適用的行。以下是我當前的代碼:將Java Tokenizer轉換爲Stream對象以便利用過濾
public void readInFile(String csvFile){
BufferedReader br = null;
String line = "";
final String csvSplitBy = ",";
try {
br = new BufferedReader(new FileReader(csvFile));
while ((line = br.readLine()) != null) {
String[] transaction = line.split(csvSplitBy);
transactions.add(new QBTransaction(
new TransactionDetails(transaction[TRANSACTION_DATE],
transaction[TRANSACTION_NUM],
transaction[TRANSACTION_NAME],
Double.parseDouble(transaction[TRANSACTION_AMOUNT]))));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
transactionServiceImpl.addAll(transactions);
}
非常鍋爐板。這裏使用的代碼流:
public void parseFile(String fileName) {
try (Stream<String> stream = Files.lines(Paths.get(fileName))) {
stream
.filter(w -> w.startsWith("Payment"))
//create object
} catch (IOException e) {
e.printStackTrace();
}
}
有沒有把一個標記在foreach,或許輸出一個String對象,我可以養活到另一個方法的方法嗎?
是的,該地圖類正是我想念,謝謝。 – StillLearningToCode