0
我正在研究地址簿程序,而我正在嘗試做的最後一件事是允許用戶指定一個充滿命令的文件,例如:添加名稱,刪除名稱,打印和等等。如何在java中使用csv文件調用方法?
所有這些方法都已經實現到我的程序中,並且當我將這些命令輸入到控制檯時,它們都能正常工作。
我試過使用for循環從文件輸入流中讀取命令,但它只處理csv文件中的第一個命令。我甚至嘗試將列出的命令首先添加到字符串數組中,然後從流數組中讀取,並得到相同的結果。
這是我目前的代碼看起來像將處理第一個命令,但沒有別的。
private static void fileCommand(String file) throws IOException {
File commandFile = new File(file);
try {
FileInputStream fis = new FileInputStream(commandFile);
int content;
while ((content = fis.read()) != -1) {
// convert to char and display it
StringBuilder builder = new StringBuilder();
int ch;
while((ch = fis.read()) != -1){
builder.append((char)ch);
}
ArrayList<String> commands = new ArrayList<String>();
commands.add(builder.toString());
for(int i = 0; i<commands.size();i++){
if (commands.get(i).toUpperCase().startsWith("ADD")|| commands.get(i).toUpperCase().startsWith("DD")){
addBook(commands.get(i));
}
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// TODO Auto-generated method stub
}
我將上傳我的csv文件的屏幕截圖。我試過你的源代碼,它仍然做同樣的事情。它只添加第一行。 – Remixt
我自己嘗試過,當然在發佈之前,它正在工作,你的csv文件看起來就像我所想的那樣。我不認爲你實際上在使用我的源代碼。 –
我直接從堆棧溢出複製並粘貼它。 – Remixt