Problemuccio con SCANNER

di il
14 risposte

Problemuccio con SCANNER

Ragazzi e' da stamattina che sto combattendo forse senza motivo con " Scanner " per l'accquisizione
di un astringa in input da tastiera, e fin qui tutto ok...non riesco a farglielo copiare su un file e ancor meno ad accodare con "append".

mi chiedo si puo' fare con "scanner" o no.... online diciamo che mi sono un po perso senza arrivare davvero a niente!

questo e' tuto quello che sono risucirto a fare:

System.out.println("\n  Inserisci Anagrafica Nuovo Fornitore.\n\n  RAGIONE SOCIALE: ");
	
	
	Scanner ragioneSociale = new Scanner(System.in);
	String stringaSociale = ragioneSociale.nextLine();
davvero patetico hehheheee

14 Risposte

  • Re: Problemuccio con SCANNER

    Ha senso una cosa di questo genere??? perche funziona
    
    System.out.println("\n  Inserisci Anagrafica Nuovo Fornitore.\n\n  RAGIONE SOCIALE: ");
    
    	Scanner ragioneSociale = new Scanner(System.in);	
    	FileWriter out2 = new FileWriter("prova.txt", true);
    	String stringaSociale = ragioneSociale.nextLine();
    	PrintWriter out = new PrintWriter(stringaSociale);
    	out2.write(stringaSociale);
    	out2.close();
    
  • Re: Problemuccio con SCANNER

    fabbio ha scritto:


    ha senso una cosa di questo genere??? perche funziona
    Tecnicamente sì, ha senso. Il FileWriter sta funzionando in "append" (quel secondo true al costruttore) se è questo che intendevi e volevi.

    Però non scrivi sul file un newline. Se esegui due volte, prima inserendo ciao e la seconda volta prova, nel file avrai ciaoprova tutto attaccato. Sempre se è questo che volevi.

    P.S. Non usare \n nelle stringhe in output, NON vuol dire la sequenza di newline (in senso generale) .... non siamo in C con il printf.
  • Re: Problemuccio con SCANNER

    Okk andbin, grazie mille...

    -infatti la seconda domanda voleva essere proprio quella della newline sul file(pero' prima ci ragiono dinuovo e poi vi chiedo)
  • Re: Problemuccio con SCANNER

    Scusate, ma con questo codice, faccio si quel che vorei farei.... ma oltre che a crearmi il file
    "prova.txt " mi crea un altro file a 0kb e lo chiama con la parola che digito da tastiera....
    problemi di eccezzioni???
    
    System.out.println("\n  Inserisci Anagrafica Nuovo Fornitore.\n\n  RAGIONE SOCIALE: ");
    	Scanner ragioneSociale = new Scanner(System.in);	
    	FileWriter out2 = new FileWriter("prova.txt", true);
    	String stringaSociale = ragioneSociale.nextLine();
    	PrintWriter out = new PrintWriter(stringaSociale);
    	out2.write(stringaSociale);
    	out2.close();
    
  • Re: Problemuccio con SCANNER

    fabbio ha scritto:


    scusate, ma con questo codice, faccio si quel che vorei farei.... ma oltre che a crearmi il file
    "prova.txt " mi crea un altro file a 0kb e lo chiama con la parola che digito da tastiera....
    problemi di eccezzioni???
    Già prima ho visto che usavi un PrintWriter ma non vedo l'uso di 'out' ... quindi a che ti serve?

    PrintWriter(String fileName)

    quindi se lo costruisci con una stringa "ciao" ... lui crea un file ciao. Non c'è molto da questionare ...
  • Re: Problemuccio con SCANNER

    Okk andbin, hai ragione che ce l'ho messo a fare!!!!

    quindi ho eliminato la riga che mi creava quel file vuoto:
    
    PrintWriter out = new PrintWriter(stringaSociale);
    
    rimane da risolvere la newline sul file, che vedo di capirci come fare!!!


    -domanda:
    devo inserire dati anagrafici di una fantomatica ditta, che so'... P.IVA, ragione sociale, indirizzo, citta, telefono ecc eccc.... e memorizzrli in un file.
    -quindi mi chiedo se ha senso aprire tale file e richiuderlo tutte le volte che con scanner inserisco un dato anagrafico previa domanda di inserimento di dato richiesto???
    tipo:
    INSERISCI INDIRIZZO:
    via rustica 5
    INSERISCI TELEFONO:
    33822222222
    INSERISCI CITTA':
    roma

    -si potrebbe fare aprendo il file una sola volta e procedere con l'inserimento???
  • Re: Problemuccio con SCANNER

    fabbio ha scritto:


    rimane da risolvere la newline sul file, che vedo di capirci come fare!!!
    Ci sono classi di I/O che hanno metodi appositi che trattano il newline:
    - PrintWriter/PrintStream hanno i println()
    - BufferedWriter ha newLine()

    Altrimenti la sequenza di newline corretta per la piattaforma corrente (su cui sta girando la applicazione) la puoi sempre comunque ottenere da

    String newline = System.getProperty("line.separator");

    fabbio ha scritto:


    -si potrebbe fare aprendo il file una sola volta e procedere con l'inserimento???
    Certo ma se ad una seconda esecuzione della applicazione vuoi aggiungere al file invece che sovrascrivere, o usi una modalità di "append", oppure rileggere tutto il file in memoria, aggiungere e riscrivere poi tutto il file.
  • Re: Problemuccio con SCANNER

    Okk chiarissimo... arigrazie come sempre
  • Re: Problemuccio con SCANNER

    -devo creare una directory, ma il nome dellla dir mi viene dato in input da tastiera.
    -come aggiungo al Path la variabile passata da Scanner???
    
    Scanner ragioneSociale = new Scanner(System.in);		
    	String stringaSociale = ragioneSociale.nextLine();
    	File dir = new File ("/Users/fabbio/Desktop/java/programma/(devo aggiungere qui la dir)");
    	dir.mkdir();
    
    il code se la inserisco direttamente funziona, ma se fa schifo commentate pure!!
  • Re: Problemuccio con SCANNER

    fabbio ha scritto:


    ma se fa schifo commentate pure!!
    Sì, purtroppo non è buono. Hai "cablato" nel sorgente un path assoluto che vale solo su Windows e oltretutto solo sulla tua macchina.
    La questione non è tanto tecnica ma concettuale. Chiarisci cosa devi fare, perché devi prendere in input una directory, cosa rappresenta e come deve essere considerata questa directory.
  • Re: Problemuccio con SCANNER

    Allora.... e' come sempre un esercizio e momentaneamente sto provando a creare dir e file!

    -praticamente quel pezzo di codice fa parte di un costruttore che inserisce in un file tutti i dati di un fantomatico cliete/fornitore, e visto che vorrei usare quel costruttore per inserire un tot di clienti avrei l'esigenza che ad ogni cliente gli venisse asseganta una cartella in cui sara' salvato un file con tutti i suoi dati anagrafici, cosi facendo ogni cliente sarebbe separato dagli altri.

    -da qui l'esigenza di riuscire a reperire da una variabile il nome della dir da creare che gli dovrebbe venire assegnato alla prima domanda di inserimento con Scanner .

    spero di essermi saputo spiegare bene
  • Re: Problemuccio con SCANNER

    fabbio ha scritto:


    quel pezzo di codice fa parte di un costruttore che inserisce in un file tutti i dati di un fantomatico cliete/fornitore
    Un costruttore non dovrebbe fare tutta questa logica.

    fabbio ha scritto:


    avrei l'esigenza che ad ogni cliente gli venisse asseganta una cartella in cui sara' salvato un file con tutti i suoi dati anagrafici, cosi facendo ogni cliente sarebbe separato dagli altri.
    E questo va bene, ha senso. Ma le questioni sono sempre le "solite" di architettura e design delle classi.
  • Re: Problemuccio con SCANNER

    And.... in che senso un costruttore non dovrebbe fare tutta questa logica???

    -cioe': tu dici che sarebbe piu' opportuno lasciare che sia il file del main a passare al costruttore i dati in input di scanner e che il costruttore assembli il tutto in un file dentro la dir..

    spero di essermi spiegato bene
  • Re: Problemuccio con SCANNER

    Scusate ragazzi, sono giorni che cerco di capire la frase di andbin:
    Un costruttore non dovrebbe fare tutta questa logica.
    riferito ad un pezzo di codice di un costruttore di un paio di risposte prima di questa.

    -solo che non riesco a capire o a visualizzare il costruttore senza tutta quella logica.
    -quel costruttore... quello deve fare, passare in rassegna tutte le domande, prendere le risposte e
    stamparne il risulatato in un file.

    -si, effettivamente mi sembra un po complesso e forse un po macchinoso ma non riesco a visulizzarlo
    in altro modo.

    se potreste spiegarmi che logica dovrebbe seguire un costruttore magari riesco e vedere la cosa da un altro punto di vista.

    grassiee millee
Devi accedere o registrarti per scrivere nel forum
14 risposte