在文件中写入更多详细信息

时间:2016-03-07 08:20:22

标签: java

实际上正在处理文件,我已经将一个人的详细信息写入文件,现在我想写多个人的详细信息 文件,我尝试使用for循环,但已创建两个文件,我想在同一个文件中写入多人的详细信息

    import java.util.*;
    import java.io.*;
    public class Tourism {
    String name;
    String contact_number;
    String address;
    String enquiry_category;
    String Des;
    String price;
    String location;
    String packages;
    Scanner s=new Scanner(System.in);
    Scanner s1=new Scanner (System.in);
    Scanner s2=new Scanner(System.in);
    Scanner s3=new Scanner(System.in);
    Scanner s4=new Scanner(System.in);
    Scanner scan=new Scanner(System.in);
    public void Choice(){
     System.out.println("========menu========");
      System.out.println("1.Initiate enquiry");
      System.out.println("2.view enquiry");
      System.out.println("3.exit");
      System.out.println("enter the choice");
      int ch;
      ch=scan.nextInt();
      switch(ch){
          case 1:initiate();
              break;
          case 2:

             View();
              break;

          case 3:
              System.exit(0);
              break;
      }
    }
    public void initiate(){
        for(int i=1;i<=2;i++){
            System.out.println("=========="+i+"=========");
        System.out.println("enter the name");
        name=s.next();
        System.out.println("enter the contact number");
        contact_number=s1.nextLine()+"";
        System.out.println("enter the address");
        address=s2.nextLine()+"";
        System.out.println(" enquiry categories:-");
        System.out.println("enter the price range");
         price=s1.nextLine()+"";
        System.out.println("enter the location");
        location=s2.nextLine()+"";
        System.out.println("select/enter the package u want to have");
        packages=s3.nextLine()+"";
        System.out.println("enter the description of enquiry");
        Des=s4.nextLine()+"";
        }
        try{
            BufferedWriter br=new BufferedWriter(new FileWriter("Enquiry.txt"));
            br.write(name);
            br.newLine();
            br.write("mobile number:"+contact_number);
            br.newLine();
            br.write("address:"+address);
            br.newLine();
            br.write("price:"+price);
            br.newLine();
            br.write("location:"+location);
            br.newLine();
            br.write("packages:"+packages);
            br.newLine();
            br.write("enquiry description:"+Des);
            br.close();
       }catch(IOException e){
            System.out.println(e);
        }
    }

    public void View(){
        Scanner scanner=new Scanner(System.in);
        System.out.println("enter the name to view the details");
        String name1;
         name1=scanner.nextLine();
        try{
        BufferedReader br=new BufferedReader(new FileReader("C:\\Users\\shashi.s\\Documents\\NetBeansProjects\\JavaApplication128\\Enquiry.txt"));
        String line;
        while((line=br.readLine())!=null){
        if(line.equals(name1)){
            System.out.println(line);
            String line1;
            while((line1=br.readLine())!=null){
            System.out.println(line1);
        }
        }else{
            System.out.println("oops "+name1+" .....does not exist");
            break;
        }
        }
        }catch(IOException e){
           System.out.println(e);
       }
    }
    public static void main(String[] args) {
         Tourism t=new Tourism();
         t.Choice();
    }

}

2 个答案:

答案 0 :(得分:0)

使用 FileWriter(String fileName, boolean append)

而不是**new FileWriter("Enquiry.txt")**

修改后的代码告诉在布尔表达式为true时附加文本。但在你的情况下,它只是写作而不是附加下一个输入的数据。希望你发现我的代码很有帮助。

答案 1 :(得分:0)

在你的迭代中,你只是从控制台获取值并存储到变量,而不是写入文件。当你输入第二组值时,它会覆盖第一组。最后,你走出循环并且将值写入file.But变量仅保存最后输入的值。 您可以在for循环中修改代码以写入文件,如下所述:

public void initiate() {
    try {
        BufferedWriter br = new BufferedWriter(new FileWriter("Enquiry.txt"));
        for (int i = 1; i <= 2; i++) {
            System.out.println("==========" + i + "=========");
            System.out.println("enter the name");
            name = s.next();
            System.out.println("enter the contact number");
            contact_number = s1.nextLine() + "";
            System.out.println("enter the address");
            address = s2.nextLine() + "";
            System.out.println(" enquiry categories:-");
            System.out.println("enter the price range");
            price = s1.nextLine() + "";
            System.out.println("enter the location");
            location = s2.nextLine() + "";
            System.out.println("select/enter the package u want to have");
            packages = s3.nextLine() + "";
            System.out.println("enter the description of enquiry");
            Des = s4.nextLine() + "";
            br.newLine();
            br.write(name);
            br.newLine();
            br.write("mobile number:" + contact_number);
            br.newLine();
            br.write("address:" + address);
            br.newLine();
            br.write("price:" + price);
            br.newLine();
            br.write("location:" + location);
            br.newLine();
            br.write("packages:" + packages);
            br.newLine();
            br.write("enquiry description:" + Des);
        }
        br.close();
    } catch (IOException e) {
        System.out.println(e);
    }

}