2016-05-06 3 views
0
setzen

Ich bin neu in Java. Ich versuche, Details in eine Datei zu schreiben, aber ich möchte in der Datei vordefinierten Text haben, wie zum Beispiel:
Name:
Alter:
Stadt:
Sport:Vordefinierten Text in eine Datei beim Schreiben in Java

Ich war nicht sicher, auf Wie macht man das. Ich versuche, eine switch-Anweisung zu verwenden, und abhängig von der Position des Arrays wird der vordefinierte Text zuerst geschrieben und dann mit den relevanten Informationen gefüllt. Ich wollte die switch-Anweisung in einem anderen Verfahren setzen die Codezeilen, die in dem Verfahren zu reduzieren, aber ich war nicht sicher, wie ich zurückkehren, während innerhalb der for-Schleife

\t 
 
    private String setPredefinedFileLines() { 
 
\t int i = 0; String 
 
\t startOfFileText = null; switch (i) { 
 
\t case 1: startOfFileText = 
 
\t "Server Name : "; break; } 
 
    
 
\t return startOfFileText; 
 
    
 
\t }

public void writeStringToFile(String[] stringContents) throws IOException { 
 
\t \t BufferedWriter bw = new BufferedWriter(new FileWriter(fileToWriteTo)); 
 

 
\t \t try { 
 

 
\t \t \t for (int i = 0; i < stringContents.length; i++) { 
 
\t \t \t \t String startOfFileText = null; 
 
\t \t \t \t switch (i) { 
 
\t \t \t \t case 1: 
 
\t \t \t \t \t startOfFileText = "Server Name : "; 
 
\t \t \t \t \t break; 
 
\t \t \t \t } 
 
\t \t \t \t bw.write(stringContents[i]); 
 
\t \t \t \t bw.newLine(); 
 
\t \t \t \t bw.flush(); 
 
\t \t \t } 
 
\t \t } catch (IOException e) { 
 
\t \t \t System.out.println(e.getMessage()); 
 
\t \t } 
 

 
\t \t finally { 
 
\t \t \t if (bw != null) { 
 
\t \t \t \t bw.close(); 
 
\t \t \t } 
 
\t \t } 
 

 
\t }

Antwort

1

Dies ist die komplette Arbeits Code

public class WriteToFile { 

    /** 
    * @param args 
    */ 
    public static void main(String[] args) throws Exception{ 
     File file = new File("file.out"); 
     BufferedWriter bw = new BufferedWriter(new FileWriter(file, true)); 
     List<Student> students = new ArrayList<Student>(); 
     Student s1 = new Student("Vivek", "23", "Pune", "Cricket"); 
     Student s2 = new Student("Vivek", "23", "Pune", "Cricket"); 
     Student s3 = new Student("Vivek", "23", "Pune", "Cricket"); 

     students.add(s1); 
     students.add(s2); 
     students.add(s3); 

     for(Student s: students){ 
      bw.write("Name:"+s.name+"\n"); 
      bw.write("Age:"+s.age+"\n"); 
      bw.write("City:"+s.city+"\n"); 
      bw.write("Sport:"+s.sport+"\n"); 
     } 


     bw.close(); 
    } 

} 

class Student{ 
    String name, age, city, sport; 

    public Student(String name, String age, String city, String sport){ 
     this.name = name; 
     this.age = age; 
     this.city = city; 
     this.sport = sport; 
    } 
} 

Code ist ziemlich einfach, aber lassen Sie mich wissen, wenn Sie nicht in der Lage sind zu verstehen.

+0

Danke für die Hilfe, ich habe bereits ein Array mit Informationen, dass ich mit den vorgegebenen Werten ausgegeben werden soll, so war ich nicht sicher, warum meine aktuelle Methode nicht –

+0

arbeiten, was das ist Inhalt des Arrays 'stringContents' wenn es Name, Alter, Stadt, Sportart eines Schülers enthält, dann kann man einfach' bw.write ("Name:" + stringContents [0]) 'und so weiter schreiben ... – viveksinghggits

0

Versuchen Sie dies.

import java.io.*; 

public class SampleApp { 
    public static void main(String... args) throws IOException { 
     // For purposes of demonstration values are hardcoded. 
     String name = "Desmond"; 
     int age = 24; 
     String city = "New York"; 
     String sport = "Basketball"; 

     String fileName = "output.txt"; 

     writeToFile(name, age, city, sport, fileName); 
    } 


    public static void writeToFile(String name, int age, String city, String sport, String fileName) throws IOException { 
     File fileToWriteTo = new File(fileName); 
     fileToWriteTo.createNewFile(); 

     try (PrintWriter pw = new PrintWriter(fileToWriteTo)) { 
      pw.println("Name: " + name); 
      pw.println("Age: " + age); 
      pw.println("City: " + city); 
      pw.println("Sport: " + sport); 
     } 
    } 
} 

Allerdings ist es klüger, Namen zu bündeln, Alter, Stadt und Sport in einer anderen Klasse, wie folgt aus:

public class Info { 
    public String name; 
    public int age; 
    public String city; 
    public String sport; 


    Info(String name, int age, String city, String sport) { 
     this.name = name; 
     this.age = age; 
     this.city = city; 
     this.sport = sport; 
    } 
} 

und diese stattdessen tun.

import java.io.*; 

public class SampleApp { 
    public static void main(String... args) throws IOException { 
     // For purposes of demonstration values are hardcoded. 
     Info info = new Info("Desmond", 24, "New York", "Basketball"); 

     String fileName = "output.txt"; 

     writeToFile(info, fileName); 
    } 


    public static void writeToFile(Info info, String fileName) throws IOException { 
     File fileToWriteTo = new File(fileName); 
     fileToWriteTo.createNewFile(); 

     try (PrintWriter pw = new PrintWriter(fileToWriteTo)) { 
      pw.println("Name: " + info.name); 
      pw.println("Age: " + info.age); 
      pw.println("City: " + info.city); 
      pw.println("Sport: " + info.sport); 
     } 
    } 
} 
Verwandte Themen