User Tools

Site Tools


java:formatting

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision Both sides next revision
java:formatting [2020/03/09 21:25]
gthanos
java:formatting [2021/05/14 15:53]
gthanos
Line 1: Line 1:
-====== Μορφοποίηση Εξόδου ======+====== Εγγραφή σε αρχεία κείμενου ====== 
 + 
 +Η εγγραφή αρχείων κειμένου γίνεται μέσω της κλάσης [[https://docs.oracle.com/javase/8/docs/api/java/io/PrintWriter.html|PrintWriter]]. Προκειμένου να γράψετε σε ένα αρχείο θα πρέπει να δημιουργήσετε ένα αντικείμενο αυτής της κλάσης με όρισμα το όνομα του αρχείου στο οποίο θέλετε να γράψετε. Εάν το αρχείο υπάρχει τα περιεχόμενα του θα διαγραφούν. 
 + 
 +Στο παρακάτω παράδειγμα, η κλάση ReadWithScanner της προηγούμενης ενότητας επεκτείνεται με μία επιπλέον μέθοδο για την εγγραφή των περιεχομένων του πίνακα των τηλεφωνικών αριθμών σε ένα αρχείο τύπου [[wiki:Comma-separated_values|CSV]] (Comma Separated Values). 
 + 
 +<code java ReadWithScannerAndWriteCSV.java> 
 +import java.util.*; 
 +import java.io.*; 
 + 
 +public class ReadWithScannerAndWriteCSV { 
 + 
 + 
 +  public static void main(String []args) { 
 +   
 +    TelephoneNumber[] numbers; 
 +    numbers = readTelephoneNumbers("telephone-list.txt"); 
 +    printTelephoneNumbers(numbers); 
 +    writeTelephoneNumbers2CSVfile(numbers, "contacts.csv"); 
 +  } 
 +   
 +  public static void printTelephoneNumbers(TelephoneNumber[] numbers) { 
 +    for(TelephoneNumber number : numbers) { 
 +      System.out.println(number); 
 +    } 
 +  } 
 +   
 +  public static TelephoneNumber[] readTelephoneNumbers(String filename) { 
 +    String firstname, lastname; 
 +     
 +    long number; 
 +    int i=0; 
 +    TelephoneNumber numbers[] = new TelephoneNumber[5]; 
 +    try(Scanner sc = new Scanner(new File(filename))) { 
 +       
 +      while( sc.hasNext() ) {         
 +        firstname = sc.next(); 
 +        lastname = sc.next(); 
 +        number = sc.nextLong(); 
 + 
 +        numbers[i++] = new TelephoneNumber(firstname+" "+lastname, number); 
 +      } 
 +       
 +    } catch(InputMismatchException ex) { 
 +      System.out.println("Invalid file contents!"); 
 +    } catch(FileNotFoundException ex) { 
 +      System.out.println("Unable to open '"+filename+"'"); 
 +    } 
 +     
 +    return numbers; 
 +  } 
 +   
 +  public static void writeTelephoneNumbers2CSVfile(TelephoneNumber[] numbers, String filename) { 
 +     
 +    try(PrintWriter writer = new PrintWriter(filename)) { 
 +      for(TelephoneNumber number : numbers) { 
 +        writer.format("%d, %s\n", number.getNumber(), number.getName()); 
 +      } 
 +    } 
 +    catch(FileNotFoundException ex) { 
 +      System.out.format("Unable to open file '%s' for writting!\n", filename); 
 +    } 
 +     
 +  } 
 +
 +</code> 
 + 
 +Η κλάση [[https://docs.oracle.com/javase/8/docs/api/java/io/PrintWriter.html|PrintWriter]], όπως και η κλάση [[https://docs.oracle.com/javase/8/docs/api/java/io/PrintStream.html|PrintStream]] παρέχουν τη μέθοδο format (ή printf) για την εκτύπωση μορφοποιμένης εξόδου
 + 
 +===== Μορφοποίηση Εξόδου =====
  
 Οι κλάσεις [[http://docs.oracle.com/javase/7/docs/api/java/io/PrintStream.html|PrintStream]] και [[http://docs.oracle.com/javase/7/docs/api/java/io/PrintWriter.html|PrintWriter]] υλοποιούν ένα κοινό σύνολο μεθόδων για εγγραφή χαρακτήρων. Παρέχονται οι παρακάτω δύο δυνατότητες μορφοποίησης: Οι κλάσεις [[http://docs.oracle.com/javase/7/docs/api/java/io/PrintStream.html|PrintStream]] και [[http://docs.oracle.com/javase/7/docs/api/java/io/PrintWriter.html|PrintWriter]] υλοποιούν ένα κοινό σύνολο μεθόδων για εγγραφή χαρακτήρων. Παρέχονται οι παρακάτω δύο δυνατότητες μορφοποίησης:
java/formatting.txt · Last modified: 2021/05/14 15:09 (external edit)