Win a copy of Think Java: How to Think Like a Computer Scientist this week in the Java in General forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

How to show writing in a text file.

 
amit pandit
Greenhorn
Posts: 23
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I would like to ask that, how to show "writing in a text file" on consoles ?

i.e. if i am writing some content in a file say abc.txt using a java program, then
while writing in a file, how can i show updated file contents on other console (ie. other than my currently running java program console).

I want to do two things simultaneously:
1. Updating contents of a file using java program
2. Showing upadated contents each time (when a line gets written to a file)
on another console.
(I have already opened one extra console to show write operation in a file).

I am not supposed to use any applet or awt component.Which APIs would are expected to suffice?

Thank You,

Regards,
Amit Pandit.
 
Nitesh Kant
Bartender
Posts: 1638
IntelliJ IDE Java MySQL Database
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
This is the legendary producer-consumer scenario but in different processes!!
You can use java.nio.channels.FileLock to simulate the same.
You can have a lock file that the two processes race to grab.
A very crude sample code is as follows: (DISCLAIMER: The following code is just a POC that file locks can be used to do the required.)

Producer:


Consumer:



Note:
1) The above producer waits for the user input to write to a file.
2) Thread.sleep() in producer is to allow the consumer to grab the lock. If this wait is not provided then its not necessary that for the small period that the producer releases the lock, the consumer will be able to grab it.
 
amit pandit
Greenhorn
Posts: 23
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
hi

the other console which i use, doesn't means for other java program
That console is just to show a file which is being get updated by a
java program from first console.

My final o/p would be -

program1.java |
console 1 | console 2
// File abc.txt | File abc.txt is always shown here
get updated here | simultaneoulsy

Thanks

Amit Pandit
 
Nitesh Kant
Bartender
Posts: 1638
IntelliJ IDE Java MySQL Database
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
What is this console all about. I mean which application opens this console.
I really cant understand this console paradigm. :roll:
 
Ernest Friedman-Hill
author and iconoclast
Marshal
Pie
Posts: 24211
35
Chrome Eclipse IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
On a UNIX-like system, use "tail -f <filename>" to look at the file; as the Java program appends new data to the file, the "tail" program will see the new data and display it.

Or you could open the file in Emacs, and use "auto-refresh" mode, which will automatically update a buffer periodically.

On Windows, who knows.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic