Salve a tutti, ho un problema con NetBeans. Ho iniziato a programmare in Java, all’università il libro che mi è stato consigliato per fare input/output usa due classi create apposta dagli autori: ConsoleInputManager e ConsoleOutputManager. Per usarle nei programmi devo scrivere i seguenti comandi: import prog.io.ConsoleInputManager; e import prog.io.ConsoleOutputManager;.
NetBeans non mi riconosce l’import prog.io e dice “package prog.io does not exist”. Qualcuno sa dirmi come bisogna fare su Linux per aggiungere questo pacchetto? (Sempre se si può)
Hai a disposizione i sorgenti o i compilati del package?
Sono presenti nella directory dove stai precompilando?
Sono un po’ di anni che non bazzico in java, ma ignora quelle classi create degli autori del libro (non presenti quindi nella libreria java standard) e usa gli stream System.in e System.out e la classe Scanner.
Per fare output su terminale fai un import statico di
import static java.lang.System;
e usi la funzione
System.out.println("stringa");
Al posto della stringa puoi ovviamente mettere un tipo di dato o un oggetto che sono stampabili (che hanno implementato cioè il metodo toString()). Println va a capo dopo aver stampato, se non lo desideri usa la funzione print (senza ln).
Per leggere un input da terminale importi
import java.util.Scanner;
crei uno scanner che legge dallo standard input
Scanner sc = new Scanner(System.in);
e poi ti sbizzarisci
sc.nextLine()
sc.nextInt()
etc…
Puoi anche usare le regex per fare cose molto complesse o controllare preventivamente con le funzioni hasNext (tipo hasNextInt()) che l’input che ti arriva sia del tipo che desideri.
per esempio se vuoi che il programma continui a chiedere di inserire un numero intero finchè non viene correttamente digitato puoi fare un semplice
int tmp;
while(!sc.hasNextInt()) {
tmp = sc.nextInt();
}
Scanner è molto versatile e funziona su tutti gli stream, file inclusi
Ti consiglio comunque di dare un’occhiata alla http://download.oracle.com/javase/6/docs/api/index.html. La mia memoria non è freschissima.
@Astharoth: Sì, potrei anche fare a meno di quelle classi; magari usando JOptionPane per I/O. Il risultato del programma sostanzialmente non cambia?
JOptionPane non è semplicemente la finestrellina dove scegli un file? Serve solo per farti passare dall’utente il path o il nome di un file senza farlo impazzire inserendolo a mano
Comunque si, quelle classi puoi tranquillamente rimpiazzarle con i metodi che ti ho mostrato. Gli autori del libro le avevano create per facilitare la scrittura e la lettura su terminale ai “novelli programmatori”. Sia perché all’epoca non era ancora uscito java 1.6 con la classe Scanner, sia perché non volevano obbligarli a comprendere cose che sarebbero poi state spiegate successivamente (i vari stream).
Be, JOptionPane serve anche per fare i/o; con vari comandi tipo: “JOptionPane.showInputDialog(“stringa da scrivere”);”.
Comunque, va bene proverò ad usare anche i comandi che mi hai consigliato.
Probabilmente devi solo aggiungere dei jar al classpath per questo non ti risolve le librerie. se non ricordo male vai nella vista Project vai su libreries tasto destro add libraries e poi ci metti i jar.
Ciao
spero di esserti stato di aiuto.