Подтвердить что ты не робот

Чтение из System.in - Java

Я не уверен, как вы должны читать из системного ввода из файла Java.

Я хочу иметь возможность называть java myProg < file

Где файл - это то, что я хочу прочитать в виде строки и передать myProg в основном методе.

Любые предложения?

4b9b3361

Ответ 1

Вы можете использовать System.in для чтения со стандартного ввода. ИТ работает так же, как ввод его с клавиатуры. ОС обрабатывает переход из файла в стандартный ввод.: -)

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());
    }
}

Ответ 2

Ну, вы можете прочитать System.in, так как это действительный InputStream. Или вы можете обернуть его в BufferedReader:

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

Ответ 3

Используйте System.in, это InputStream, который просто служит этой цели

Ответ 4

Вы читали бы из System.in так же, как и для ввода с клавиатуры, например, InputStreamReader или Scanner.

Ответ 5

В Java консольный ввод выполняется с помощью System.in. Для получения символа поток, прикрепленный к консоли, оберните System.in в BufferedReader. BufferedReader поддерживает буферный входной поток. Его наиболее часто используемый конструктор здесь:

BufferedReader(Reader inputReader)

Здесь inputReader - это поток, который связан с экземпляром BufferedReader, который создано. Reader - абстрактный класс. Один из его конкретных подклассов InputStreamReader, который преобразует байты в символы.

Чтобы получить объект InputStreamReader, связанный с System.in, используйте следующий конструктор:

InputStreamReader(InputStream inputStream)

Поскольку System.in относится к объекту типа InputStream, его можно использовать для inputStream. Объединяя все это, следующая строка кода создает BufferedReader, который подключен к клавиатуре:

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

После выполнения этого оператора br - поток, основанный на символах, который связан с консолью через System.in.

Это взято из книги Java- The Complete Reference by Herbert Schildt

Ответ 6

Вы можете вызвать java myProg arg1 arg2 ...:

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

Ответ 7

Вероятно, вы ищете что-то вроде этого.

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

Ответ 8

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");
}
}