使用File Reader读取txt文件中的客户名称

时间:2012-03-06 17:31:27

标签: java filereader filewriter

我的问题,我无法弄清楚如何使用文件阅读器阅读客户名称。

我正在预订系统,我需要知道客户已经存在。这就是为什么我必须阅读我的Customers.txt文件,以便检查某人是否已经是客户。如果他不是,我将使用文件编写器创建一个新的(我已经有代码)。

此预订系统的含义是与理发师预约。我必须将预订放在另一个名为Reservations.txt的txt文件中,在该文件中,您可以看到每个预订时间以及预订者。

感谢您的帮助!

这是我已有的代码:  (有些评论是荷兰语,但我会翻译它们)

package nielbutaye;
import java.io.*;
import java.util.UUID;
/**
 * @author Niel
 *
 */
public class Klant {
    //declaration that represents the text
    public static String S;

    public static String NEWLINE = System.getProperty("line.separator");

/**
 * constructor
 */
public Klant(){}

/**
 * @return
 * By giving the name of the customer you will get all the data from  the customer
 */
public double getCustomer() {


    return 0 ;
}

/**
 * Make a new customer
 */

public void setNew customer(){
    // make a newSimpleInOutDialog     
    SimpleInOutDialog  input = new SimpleInOutDialog("A new customer");
    //input
    S = "Name customer: " + input.readString("Give in your name:");
    WriteToFile();
    S = "Adress: " + input.readString("Give your adress");
    WriteToFile();
    S = "Telephonenummber: " + input.readString("Give your telephonenumber");
    WriteToFile();
    //making a customerID
      UUID idCustomer = UUID.randomUUID();  
    S = "CustomerID: " + customerID.toString();
    WriteToFile();

}

public void WriteToFile(){
try{

    FileWriter writer = new FileWriter("L:\\Documents/Informatica/6de jaar/GIP/Customer.txt", true);
    BufferedWriter out = new BufferedWriter(writer);
    //Wrting away your data
    out.write(S + NEWLINE);
    //Closing the writer
    out.close();


}catch (Exception e){//Catch when there are errors
    System.err.println("Error: " + e.getMessage());
    }
    }
}

1 个答案:

答案 0 :(得分:0)

BufferedReader()有一个名为readLine()的方法,您可以使用该方法从文件中读取一行:

BufferedReader br = new BufferedReader(new FileReader("Customers.txt"));
String line;

while ((line = br.readLine()) != null)
{
    ...
}

br.close();

从您的WriteToFile()方法看,客户的详细信息似乎占用了四行,客户的名称出现在第一行。搜索客户时,请安排while循环以仅检查每四行读取一次。

其他要点:

  • 似乎没有理由让S成为成员变量,而不是static。只需在String中声明一个本地setNewCustomer()实例,并将其作为参数传递给WriteToFile()
  • 您可以使用NEWLINE的{​​{1}}方法,而不是定义BufferedWriter变量。