2016-03-07 4 views
-1

фактически работает над файлами, и я написал данные одного человека в файл, теперь я хочу написать данные нескольких человек этому файлу , я попытался использовать цикл 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

Какие два файла были созданы? – shmosel

+0

https://www.coursera.org/specializations/java-programming – wildloop

+1

интересно, что было вторым именем файла? – Yazan

ответ

0

использование FileWriter(String fileName, boolean append)

вместо **new FileWriter("Enquiry.txt")**

измененный код сообщает добавить текст, когда логическое выражение истинно. но в вашем случае это только письмо, а не добавление следующих введенных данных. Надеемся, что мой код полезен.

0

В вашей итерации вы просто получаете значения из консоли и сохраняете их в переменных, но не записываете в файл. Когда вы вводите второй набор значений, он перезаписывает первый. Наконец, вы выходите из цикла и напишите значения в файл. Но переменные содержат только последние введенные значения. Вы можете изменить ваш код для записи в файл в пределах цикла 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); 
    } 

}