Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - correzione esercizio, printwriter e scanner(filereader)
Forum - Java - correzione esercizio, printwriter e scanner(filereader)

Avatar
spode (Normal User)
Pro


Messaggi: 151
Iscritto: 03/09/2010

Segnala al moderatore
Postato alle 22:05
Martedė, 29/03/2011
Codice sorgente - presumibilmente Java

  1. package filetrenner;
  2. import java.awt.Color;
  3. import java.util.Scanner;
  4. import java.io.*;
  5. import javax.swing.JFileChooser;
  6.  
  7. public class Main {
  8.     private File fileDestinazione;
  9.     private int maxCaratteri;
  10.  
  11.     public int riprovare()
  12.     {
  13.         String risp = null;
  14.         System.out.print("Vuoi riprovare?[s/n] ");
  15.         Scanner leggi = new Scanner(System.in);
  16.         risp = leggi.next();
  17.  
  18.         if(risp.contains("s"))
  19.         {
  20.             this.setI();
  21.         }
  22.         return 0;
  23.     }
  24.  
  25.     public void chiudiStreams()
  26.     {
  27.         destinazione.close();
  28.         fonte.close();
  29.         this.riprovare();
  30.     }
  31.  
  32.     public void setI()
  33.     {
  34.         System.out.print("Caratteri per riga:[intero] ");
  35.         Scanner in = new Scanner (System.in);
  36.         maxCaratteri = in.nextInt();
  37.     }
  38.  
  39.     public void setSorgente()
  40.     {
  41.         JFileChooser finestraDiScelta = new JFileChooser("C:\\Users\\7-Spode\\Desktop");
  42.         finestraDiScelta.setForeground(Color.blue);
  43.         finestraDiScelta.transferFocus();
  44.         if(JFileChooser.APPROVE_OPTION == finestraDiScelta.showOpenDialog(finestraDiScelta))
  45.         {
  46.             File fileSorgente = new File(finestraDiScelta.getSelectedFile().toString());
  47.             if(!(fileSorgente.toString().endsWith(".txt"))) this.setSorgente();
  48.             this.openScanner(fileSorgente);
  49.             this.setDestinazione(fileSorgente);
  50.         }
  51.     }
  52.  
  53.     public void setDestinazione(File fileSorgente)
  54.     {
  55.         fileDestinazione = new File(fileSorgente.getAbsolutePath().toString().replace(".txt", "").concat(" - diviso per ".concat(Integer.toString(maxCaratteri))).concat(".txt"));
  56.         this.openPrintWriter(fileDestinazione);
  57.     }
  58.  
  59.     private Scanner fonte = null;
  60.     public void openScanner(File fileSorgente)
  61.     {
  62.         try
  63.         {
  64.         fonte = new Scanner(new FileReader(fileSorgente));
  65.         }
  66.         catch(FileNotFoundException e)
  67.         {
  68.             System.out.println("Il file da cui devo prendere dati non esiste... " + e);
  69.             this.setSorgente();
  70.         }
  71.     }
  72.  
  73.     private PrintWriter destinazione = null;
  74.     public void openPrintWriter(File fileDestinazione)
  75.     {
  76.         try
  77.         {
  78.         destinazione = new PrintWriter(fileDestinazione);
  79.         }
  80.         catch(FileNotFoundException e)
  81.         {
  82.             System.out.println("Non trovo il nuovo file... " + e);
  83.         }
  84.     }
  85.  
  86.     public void Dividi()
  87.     {
  88.         int somma = 0;
  89.         while(fonte.hasNext())
  90.         {
  91.             if(somma + fonte.next().length() <= maxCaratteri)
  92.             {
  93.                 somma = somma + 1 + fonte.next().length();
  94.                 if(somma == maxCaratteri)
  95.                 {
  96.                     destinazione.append(fonte.next().concat("\n"));
  97.                     somma = 0;
  98.                 }
  99.                 else
  100.                 {
  101.                     destinazione.append(fonte.next().concat(" "));
  102.                 }
  103.             }
  104.             else
  105.             {
  106.                 destinazione.append("\n");
  107.                 somma = 0;
  108.             }
  109.         }
  110.         destinazione.append("\n\nFILE TRENNER");
  111.         System.out.println("Operazione di formattazione eseguita con successo!\b");
  112.     }
  113.  
  114.     public static void main(String[] args) {
  115.        Main main = new Main();
  116.         main.setI();
  117.         main.setSorgente();
  118.         main.Dividi();
  119.         main.riprovare();
  120.     }
  121.  
  122. }



errore:
Exception in thread "main" java.util.NoSuchElementException
        at java.util.Scanner.throwFor(Scanner.java:838)
        at java.util.Scanner.next(Scanner.java:1347)
        at filetrenner.Main.Dividi(Main.java:93)
        at filetrenner.Main.main(Main.java:118)
Java Result: 1




inoltre vorrei sapere: come si fa a mettere il focus su jfilechooser, dato che "show()" e "tofront()" sono deprecate?

PM Quote