[英]File I/O Basics
我正在學校編程實驗室工作,但被卡住了。 這本書在教授如何正確設置I / O格式方面不是很有幫助,或者至少我不太了解它。 我需要一些繼續進行下一步的幫助,但這是我應該制作的程序的全部要求:
旅館銷售員在文本文件中輸入銷售。 每行包含以下內容,並用分號隔開:客戶名稱,出售的服務(例如Dinner,Conference,Lodging等),銷售金額以及該事件的日期。 編寫一個程序,讀取該文件並顯示每個服務類別的總金額。 如果文件不存在或格式不正確,則顯示錯誤。 除了列出的程序規范之外,您的程序還應打印結果並將結果發送到單獨的輸出文件。
input.txt的示例:
Elmer Fudd;住宿; 92.00; 11-01-2014
Elmer Fudd; Conference; 250.00; 11-02-2014
達菲鴨;晚餐; 19.89; 11-02-2014
達菲鴨;會議; 275.00; 11-02-2014
米老鼠;晚餐; 22.50; 11-02-2014
米老鼠;會議; 275.00; 11-02-2014
我目前仍想弄清楚如何正確加載和格式化文件,我認為這是對的,但是后來我的教授建議將每個文件分成自己的一行,但是在我的書中沒有清楚地說明如何做到這一點。 。 需要明確的是,我並不是在尋找編碼奇跡,我只是想找一個人幫助指導我正確的方向,以便下一步該做什么。 在詳細的指南中,也許是處理這種情況的更好方法? 沒什么好看的。 預先謝謝您,這是我當前的代碼。
import java.util.*;
import java.io.*;
public class Sales
{
public static void main(String[] args) throws FileNotFoundException
{
File inputFile = new File("input.txt");
Scanner in = new Scanner(inputFile);
PrintWriter out = new PrintWriter("output.txt");
double dinnerTotal = 0;
double conferenceTotal = 0;
double lodgingTotal = 0;
Scanner lineScanner = new Scanner(inputFile);
lineScanner.useDelimiter(";");
while (lineScanner.hasNext())
{
String line = in.nextLine(); //Here's where I'm really stuck
System.out.print(line); //Not to say I'm not stumped all over.
}
in.close();
out.close();
lineScanner.close();
}
}
從傑森所說的話,我現在是這樣:
import java.util.*;
import java.io.*;
public class Sales
{
public static void main(String[] args) throws FileNotFoundException
{
File inputFile = new File("input.txt");
Scanner in = new Scanner(inputFile);
PrintWriter out = new PrintWriter("output.txt");
double dinnerTotal = 0;
double conferenceTotal = 0;
double lodgingTotal = 0;
while (in.hasNext())
{
String line = in.nextLine();
String[] parts = line.split(";");
if(parts[1].equals("Conference")) {
conferenceTotal += Double.parseDouble(parts[2]);
} else if(parts[1].equals("Dinner")) {
dinnerTotal += Double.parseDouble(parts[2]);
} else if(parts[1].equals("Lodging")) {
lodgingTotal += Double.parseDouble(parts[2]);
}
}
in.close();
out.close();
}
}
堅持使用一台掃描儀。
總共閱讀每一行,而不是在';'上打斷。
然后使用String.split()
在“;”處將文本行分開 分隔器。
然后檢查第二部分(從零開始的索引)以檢索服務類別,並將第三部分中的值添加到相關總數中。
String line = in.nextLine();
String[] parts = line.split(";");
if(parts[1].equals("Conference")) {
conferenceTotal += Double.parseDouble(parts[2]);
} else if(parts[1].equals("Dinner")) {
dinnerTotal += Double.parseDouble(parts[2]);
} else if(parts[1].equals("Lodging")) {
lodgingTotal += Double.parseDouble(parts[2]);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.