java input system.in

Lectura desde System.in-Java



input (8)

No estoy seguro de cómo debe leer desde la entrada del sistema desde un archivo Java.

Quiero poder llamar a java myProg < file

Donde el archivo es lo que quiero que se lea como una cadena y se le da a myProg en el método principal.

¿Alguna sugerencia?


Bueno, puedes leer System.in mismo ya que es un InputStream válido. O también puede envolverlo en un BufferedReader :

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));


En Java, la entrada de la consola se realiza leyendo desde System.in . Para obtener una secuencia basada en caracteres que está conectada a la consola, ajuste System.in en un objeto BufferedReader . BufferedReader admite una secuencia de entrada en el búfer. Su constructor más comúnmente utilizado se muestra aquí:

BufferedReader(Reader inputReader)

Aquí, inputReader es la secuencia que está vinculada a la instancia de BufferedReader que se está creando. Reader es una clase abstracta. Una de sus subclases concretas es InputStreamReader , que convierte bytes en caracteres.

Para obtener un objeto InputStreamReader que esté vinculado a System.in, use el siguiente constructor:

InputStreamReader(InputStream inputStream)

Como System.in hace referencia a un objeto de tipo InputStream , puede usarse para inputStream. Poniéndolo todo junto, la siguiente línea de código crea un BufferedReader que está conectado al teclado:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

Después de que se ejecuta esta instrucción, br es una secuencia basada en caracteres que está vinculada a la consola a través de System.in.

Esto está tomado del libro Java- The Complete Reference by Herbert Schildt



Probablemente estás buscando algo como esto.

FileInputStream in = new FileInputStream("inputFile.txt"); BufferedReader br = new BufferedReader(new InputStreamReader(in));


Puede usar System.in para leer desde la entrada estándar. Funciona igual que ingresarlo desde un teclado. El sistema operativo maneja pasar de archivo a entrada estándar.

class MyProg { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Printing the file passed in:"); while(sc.hasNextLine()) System.out.println(sc.nextLine()); } }


Puedes llamar a java myProg arg1 arg2 ... :

public static void main (String args[]) { BufferedReader in = new BufferedReader(new FileReader(args[0])); }


Use System.in, es un InputStream que solo sirve para este propósito


class myFileReaderThatStarts with arguments { class MissingArgumentException extends Exception{ MissingArgumentException(String s) { super(s); } } public static void main(String[] args) throws MissingArgumentException { //You can test args array for value if(args.length>0) { // do something with args[0] } else { // default in a path // or throw new MissingArgumentException("You need to start this program with a path"); } }