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.in
gebruiken 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.in
zelf lezen omdat het een geldige InputStream
is. Of je kunt het ook in een BufferedReader
plaatsen:
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.in
net 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");
}
}