Hat dir diese Antwort geholfen?
Das Applet und die Datei sind in einem Ordner.
Ich poste hier mal den gesamten Code.
Ich habe das Applet leicht modifiziert um es besser testen zu können.
DateiLesen.java:
import java.awt.*;
import java.applet.*;
import java.applet.Applet;
import java.net.*;
import java.io.*;
public class DateiLesen extends Applet implements Runnable {
Thread leseThread;
boolean running = true;
TextArea leseArea;
String textAusDatei;
URL url;
InputStream inputStream;
InputStreamReader inputStreamReader;
BufferedReader bufferedreader;
int x = 0;
String alterText;
public void init() {
setLayout(new BorderLayout());
Font schrift = new Font("sansserif",Font.BOLD,12);
Color backcol = new Color(244,244,244);
leseArea = new TextArea();
leseArea.setFont(schrift);
leseArea.setBackground(Color.white);
add(leseArea,"Center");
setBackground(backcol);
leseThread= new Thread(this);
leseThread.start();
}
public void destroy() {
running = false;
leseThread = null;
}
public String dateiLesen(String dName) {
textAusDatei = new String();
try {
url = new URL(getCodeBase(),dName);
inputStream = url.openStream();
inputStreamReader = new InputStreamReader(inputStream);
bufferedreader = new BufferedReader(inputStreamReader);
String neueZeile = null;
while((neueZeile=bufferedreader.readLine())!=null) {
textAusDatei += (neueZeile+"\n");
}
}
catch(MalformedURLException e) {
leseArea.setText("URL nicht gefunden");
}
catch(IOException e ) {
leseArea.setText("Input Output-Problem");
}
return textAusDatei;
}
public void run() {
while (running) {
alterText = leseArea.getText();
leseArea.setText(alterText+x+": "+dateiLesen("chat.txt"));
x += 1;
try {
leseThread.sleep(1000);
}
catch (InterruptedException e) {
System.out.println(e);
}
}
}
}
Das Applet wird ganz normal, ohne Parameterübergabe eingebunden.
Es greift auf die Datei chat.txt zu.
Um es übersichtlich zu machen, schreib in die Datei chat.txt nur ein paar Wörter.
Wenn du das Applet am laufen hast und du mal die Datei chat.txt bei laufenden Applet änderst, sollte dir das Applet die Änderung innerhalb von max. einer Sekunde anzeigen.
Und genau da ist bei mir der Haken:
Ohne Apache zeigt der die Änderung an, mit Apache aber nicht, obwohl die Datei nachweislich verändert wurde.
Probiers mal aus!