Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

java redirection

 
Timothy Leong
Ranch Hand
Posts: 55
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
hi guys,

my program require user to read in file using the following command

1) java test < input.txt

or using this

2)
java test
Enter your filename: input.txt


I only able to do the first 1. I am using
Scanner input = new Scanner(System.in);

how do the program detect there is not file redirection and display the second option instead?
i tried input.hasNext() however it cannot work. Thank you
 
Michael Ernest
High Plains Drifter
Sheriff
Posts: 7292
Netbeans IDE VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
What does input.hasNext() return when no file has been redirected to the program?
 
Timothy Leong
Ranch Hand
Posts: 55
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
how should i detect there is no file?
 
Michael Ernest
High Plains Drifter
Sheriff
Posts: 7292
Netbeans IDE VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You don't need to. If a file has been redirected to your program and there's stuff in it, then System.in will have a handle it. If there's nothing in the System.in buffer, then you can assume no file has been passed to you.
 
Timothy Leong
Ranch Hand
Posts: 55
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I wan to design my program in the way that
user can use redirection to read in file

java program < input.txt

if the user enter command java program,
the program will display "Enter file name:"
from there, the user will key in the file name.

how do System.in detect there's no file redirection instead?

Thank you
 
Ernest Friedman-Hill
author and iconoclast
Marshal
Pie
Posts: 24208
35
Chrome Eclipse IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
It doesn't matter. Just write the program as if there's someone there typing. If input is coming from a pipe instead, then the prompts will be printed, but no-one will read them. They'll just be ignored.
 
Timothy Leong
Ranch Hand
Posts: 55
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi, I tried just the following code but do not work.
I would like the program to skip the User input if file redirection is used. or skip file redirection and request for user input if command "java program" is used.

 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic