Advanced
Java
Services
|
Dateien vom Server lesen |
Mit Hilfe der Klasse URL ist es verblüffend einfach eine Datei auf dem Server zu lesen und sie
in einem Applet darzustellen. Auf die folgende Weise besorgt man sich ein Objekt vom Typ URL
(import java.net.*; ist notwendig)
URL url = new URL(codeBase,fileName);
Über die Methode openStream() erhält man dann einen InputStream (import java.io.*; ist notwendig).
InputStream is = url.openStream();
Falls es sich um eine Textdatei handelt wird man den InpuStream in einen BufferedReader
einhüllen.
BufferedReader br = new BufferedReader( new InputStreamReader(is) );
Fertig!
Das folgende Applet liest eine Datei vom Server ein und stellt sie in einer JTextArea in einem
JScrollPane dar. Es handelt sich um Albert Einsteins Glaubensbekenntnis, das er 1932 "postulierte".
Lesen sie es!
import java.io.* ;
import java.net.* ;
import java.awt.* ;
import javax.swing.* ;
import java.awt.event.*;
public class EinsteinApplet extends JApplet
{
private JButton readURLButton = new JButton("Einstein's Glaubensbekenntnis") ;
private JTextArea tear = new JTextArea();
private JScrollPane sp = new JScrollPane(tear);
private Container pa;
public void init()
{
tear.setLineWrap(true);
tear.setWrapStyleWord(true);
readURLButton.setBackground( new Color( 240, 240, 200 ) );
readURLButton.addActionListener( new ButtonHandler() ) ;
getContentPane().add(readURLButton, BorderLayout.NORTH);
getContentPane().add( sp, BorderLayout.CENTER);
}
class ButtonHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
try
{
URL url = new URL( getCodeBase(), "einstein.txt");
InputStream is = url.openStream();
BufferedReader br = new BufferedReader( new InputStreamReader(is) );
String text = readFile(is);
tear.setText(text);
tear.setCaretPosition(0);
}
catch(Exception ex)
{
tear.append(ex+"\n");
}
}
} // end Buttonhandler
String readFile(InputStream is)
throws IOException
{
BufferedReader br = new BufferedReader( new InputStreamReader(is) );
StringBuffer text = new StringBuffer();
String line;
while ( (line=br.readLine()) !=null )
text.append( line+"\n");
return text.toString();
}
} // end class