home *** CD-ROM | disk | FTP | other *** search
Java Source | 1996-08-14 | 2.4 KB | 96 lines |
- // DataLoaderThread.java
- // 28.02.96
- //
- // the type of thread that acutally loads files
-
- package cybcerone.utils;
-
- import java.applet.Applet;
- import java.io.DataInputStream;
- import java.io.BufferedInputStream;
- import java.io.IOException;
- import java.net.URL;
- import java.net.MalformedURLException;
- import java.util.Vector;
-
- /**
- * A thread to read from a particular file.
- */
- class DataLoaderThread extends Thread {
-
- private DataLoader loader;
- private String filename;
- private Literate reader;
- private Appletlike requester;
- private Applet app;
-
- private Vector retVector = new Vector ();
-
- DataLoaderThread (DataLoader loader, String name, String filename,
- Literate reader, Appletlike requester, Applet app) {
- super (name);
- setPriority (Thread.NORM_PRIORITY -1);
-
- this.loader = loader;
- this.filename = filename;
- this.reader = reader;
- this.requester = requester;
- this.app = app;
-
- }
-
- DataLoaderThread (DataLoader loader, String name, String filename,
- Appletlike requester, Applet app) {
- super (name);
- setPriority (Thread.NORM_PRIORITY + 1);
-
- this.loader = loader;
- this.filename = filename;
- this.requester = requester;
- this.app = app;
- }
-
-
- public void run () {
- DataInputStream inStream;
- Object tempObject;
-
- try {
- requester.initMessage ("Opening data file: " + filename);
- inStream = new DataInputStream
- (new BufferedInputStream (new URL(app.getDocumentBase (),
- filename).openStream ()));
- if (reader != null)
- tempObject = reader.read (inStream);
- else
- tempObject = inStream.readLine ();
- while (tempObject != null) {
- retVector.addElement (tempObject);
- if (reader != null)
- tempObject = reader.read (inStream);
- else
- tempObject = inStream.readLine ();
- yield ();
- }
- requester.initMessage ("Finished reading: " + retVector.size() +
- " objects from " + filename);
- inStream.close ();
- requester.update (retVector);
- loader.removeThread (this);
- } catch (MalformedURLException e) {
- System.err.println ("DataLoaderThread: ERROR -- bad URL, " +
- e.getMessage ());
- requester.update ((Vector)null);
- loader.removeThread (this);
- } catch (IOException e) {
- System.err.println ("DataLoaderThread: IO ERROR --, " + e.getMessage ());
- requester.update ((Vector)null);
- loader.removeThread (this);
- }
- }
-
- public String toString () {
- return ("DataLoaderThread[" + filename + "]");
- }
- }
-