Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [Java] Leggere e scrivere file multipli

    Ciao ragazzi sono nuovo, innanzitutto complimenti a tutti quelli che partecipano in questo forum, siete davvero bravi e tempestivi. Passiamo al mio problema, premetto mi sono avvicinato da non molto alla programmazione in java, ho provato a fare ricerche sia su google che su questo sito ma non ho trovato niente che facesse al caso mio: dovrei leggere dal file "Città.txt" formattato in questo modo:

    ID001 BerlinoGER
    ID002 StoccardaGER
    ID003 BarcellonaSPA
    ID004 MadridSPA
    ID005 MilanoITA
    ID006 RomaITA
    ID007 TorinoITA
    ID008 ParigiFRA
    ID009 LioneFRA
    ....
    ....
    ID N ....

    A me serve creare un metodo che legga solo le città italiane, spagnole e francesi, e riesca a creare dei file tipo "ITA.txt", "SPA.txt", "FRA.txt" con all'interno i rispettivi nomi di tutte le città, quindi ad es. il file "ITA.txt" dovrà essere formattato del tipo:

    Milano
    Roma
    Torino
    Genova
    ...ecc, così anche i file delle altre nazioni.

    Fino ad ora mi sono trovato a leggere da file e a crearne altri, ed è una cosa che riesco a fare, utilizzando le classi BufferReader, PrintWriter, ecc. Le difficoltà in questo caso per me
    sono due, una è di riuscire a creare i file in modo automatico, cioè non devo specificare io il nome del file ma deve essere generato direttamente dalla stringa di lettura, ad es.:

    ....
    BufferedReader inputStream = null;
    String line = inputStream.readLine();
    PrintWriter outputStream = new PrintWriter(new FileOutputStream("C:\\...\\"+line+".txt"));
    outputStream.println(line);
    ....

    L'altra difficoltà è riuscire ad estrapolare dal file giusto i dati che mi interessano, magari si potrebbe utilizzare una substring, ma non ho idea di come fare il tutto.

    Datemi una mano!! Vi ringrazio sin da ora per l'attenzione che mi darete!Ciao:-)

  2. #2
    Scusate l'up...possibile che nessuno mi possa dare un dritta?Grazie!

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da hellskitchen
    Scusate l'up...possibile che nessuno mi possa dare un dritta?Grazie!
    Il modo più flessibile per manipolare le stringhe è l'utilizzo delle espressioni regolari, tuttavia se il formato del file è esattamente quello che hai descritto ti bastano due substring per ogni linea: una dal settimo al quartultimo carattere compresi per ottenere la città, l'altra che prenda gli ultimi tre caratteri, ovvero la nazione.

    Ripeto, puoi fare così se il formato è esattamente:
    ID<3 cifre><spazio><nome città><nazione in 3 lettere>

    Se il formato è più variabile usa le regex.

    Se le tre nazioni sono esattamente quelle puoi creare inizialmente i 3 file, altrimenti se vuoi/devi scrivere un codice più generico genera una lista delle nazioni interessate e per ogni linea letta se la nazione è nella lista aggiungila al relativo file (creandolo se ancora non esiste).

  4. #4
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    codice:
    String[] temp = inputStream.readLine().replace("\\n\\r|\\r|\\n", "").split(" ");
    String city = temp[1].substring(temp[1].length-4);
    String state = temp[1].substring(temp[1].length-4, temp[1].length-1);
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  5. #5
    ok grazie, mi studierò un pò di espressioni regolari allora...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.