Inlezen van System.in – Java

Ik weet niet zeker hoe je moet inlezen vanaf systeeminvoer vanuit een Java-bestand.

Ik wil java myProg < file

Waar het bestand is wat ik wil inlezen als een string en aan myProg gegeven wil worden in de hoofdmethode.

Heeft u suggesties?


Antwoord 1, autoriteit 100%

U kunt System.ingebruiken om van de standaard invoer te lezen. Het werkt net als het invoeren vanaf een toetsenbord. Het besturingssysteem gaat van bestand naar standaardinvoer.

import java.util.Scanner;
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());
    }
}

Antwoord 2, autoriteit 29%

Nou, u kunt System.inzelf lezen omdat het een geldige InputStreamis. Of je kunt het ook in een BufferedReaderplaatsen:

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

Antwoord 3, autoriteit 11%

In Java wordt console-invoer bereikt door te lezen van System.in. Om een karakter gebaseerd te verkrijgen
stream die aan de console is gekoppeld, wikkel System.inin een BufferedReader-object.
BufferedReaderondersteunt een gebufferde invoerstroom. De meest gebruikte constructor
wordt hier getoond:

BufferedReader(Reader inputReader)

Hier is inputReader de stream die is gekoppeld aan de instantie van BufferedReaderdie wordt
gemaakt. Readeris een abstracte klasse. Een van de concrete subklassen is InputStreamReader,
die bytes omzet in tekens.

Gebruik de volgende constructor om een InputStreamReader-object te verkrijgen dat is gekoppeld aan System.in:

InputStreamReader(InputStream inputStream)

Omdat System.inverwijst naar een object van het type InputStream, kan het worden gebruikt voor inputStream.
Alles bij elkaar, de volgende regel code creëert een BufferedReaderdie is verbonden
naar het toetsenbord:

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

Nadat deze instructie is uitgevoerd, is br een op tekens gebaseerde stream die is gekoppeld aan de console
via System.in.

Dit komt uit het boek Java- The Complete Reference by Herbert Schildt


Antwoord 4, autoriteit 8%

Gebruik System.in, het is een InputStream die precies dit doel dient


Antwoord 5, autoriteit 6%

Je zou lezen vanuit System.innet zoals je zou doen voor toetsenbordinvoer met bijvoorbeeld InputStreamReaderof Scanner.


Antwoord 6, autoriteit 2%

Je kunt java myProg arg1 arg2 ...bellen:

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

Antwoord 7

U bent waarschijnlijk op zoek naar zoiets.

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

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

Other episodes