Applet 中能以共享的方式读取服务器中的文件吗

samsung508 2004-12-15 10:52:44
Applet每隔一段时间定时读取服务器上的某个文件,同时服务器上的另一段VC程序程序以共享读写方式打开这个文件定时向文件写入信息,两段程序同时运行,VC的程序没有问题,但是Applet程序出错,APPLet 中读取该文件的 方式如下:

建立一个URL : Url file = new Url("http:\\www.addr.com");
file.openStream();

Applet在服务器的VC程序没有运行时正常,但VC程序运行后file.openStream();出错.

Applet中有没有能以共享读写的方式读取文件的方法呢?
...全文
64 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
drugon 2004-12-15
  • 打赏
  • 举报
回复
好象没有直接的API可以用的。
射天狼 2004-12-15
  • 打赏
  • 举报
回复
可以啊,给你个例子!

/*
* Created on 2004-8-30
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package test;

/**
* @author Administrator
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
import java.applet.AppletContext;
import java.awt.BorderLayout;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionAdapter;
import java.awt.event.MouseMotionListener;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;

import javax.swing.ImageIcon;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JEditorPane;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

public class testApplet extends JApplet
{
ImageIcon img = null;
JLabel lbl = null;
int m_intXDown = 0, m_intYDown = 0;
Point ee = new Point ();
JButton btnOpen = null;
JEditorPane txtContent = null;
JComboBox cbo = null;

private JEditorPane getTxtContent ()
{
if (txtContent == null)
{
txtContent = new JEditorPane ();
}
return (txtContent);
}

private JButton getBtnOpen ()
{
if (btnOpen == null)
{
btnOpen = new JButton ("open");
btnOpen.addActionListener (new ActionListener ()
{
public void actionPerformed (ActionEvent arg0)
{
try
{
URL url = new URL ("http://localhost:8080/jsptest/frameAppHelp.txt");
AppletContext context = getAppletContext ();

if (cbo.getSelectedIndex () == 1)
{
context.showDocument (url, "_blank");
}
System.out.println (url.toString());
BufferedReader bufReader = new BufferedReader (new InputStreamReader (url.openStream()));
StringBuffer strBufContent = new StringBuffer ();
while (bufReader.ready ())
{
strBufContent.append (bufReader.readLine () + "\r\n");
}
txtContent.setText (strBufContent.toString());
txtContent.setCaretPosition (0);
txtContent.requestFocus (true);

}
catch (Exception e)
{
System.out.println (e.toString ());
}
}
});
}
return (btnOpen);
}

public void init ()
{
((JPanel)getContentPane()).setDoubleBuffered(true);
String [] opt = {"当前窗口中打开", "新窗口中打开"};
cbo = new JComboBox (opt);
//img = new ImageIcon ("file:/i:/ProgramsExample/JavaExample/JavaPrj/bin/book_468158.jpg");//this.getCodeBase() + "book_468158.jpg");
JPanel pane =(JPanel)getContentPane();
JScrollPane spane = new JScrollPane ();

spane.setViewportView (getTxtContent ());
lbl = new JLabel ();
pane.add(lbl);
pane.add (cbo, BorderLayout.NORTH);
pane.add (spane, BorderLayout.CENTER);
pane.add (getBtnOpen (), BorderLayout.SOUTH);

lbl.addMouseListener(new MouseListener ()
{
public void mousePressed(MouseEvent arg0)
{
m_intXDown = arg0.getX ();
m_intYDown = arg0.getY ();
ee = arg0.getPoint ();
}

public void mouseClicked(MouseEvent arg0)
{

}

public void mouseReleased(MouseEvent arg0)
{

}

public void mouseEntered(MouseEvent arg0)
{

}

public void mouseExited(MouseEvent arg0)
{

}
});

lbl.addMouseMotionListener(new MouseMotionAdapter()
{//鼠标拖动事件,移动动态图标
public void mouseDragged(MouseEvent arg0)
{
//lbl.move (lbl.LEFT + arg0.getX () - m_intXDown, lbl.TOP + arg0.getY () - m_intYDown);
Graphics2D g=(Graphics2D)getContentPane().getGraphics();
g.drawRect((int) ee.getX(), (int) ee.getY(), (int) (arg0.getX() - ee.getX ()),(int) (arg0.getY() - ee.getY()));
//g.setColor(Color.black);
//g.setXORMode(Color.BLACK);
//g.clearRect(0, 0, 1000, 1000);
g.drawRect((int) ee.getX(), (int) ee.getY(), (int) (arg0.getX() - ee.getX ()),(int) (arg0.getY() - ee.getY()));
g.dispose();
}
});
//MouseMotionListener
lbl.addMouseMotionListener(new MouseMotionListener ()
{
public void mouseMoved(MouseEvent arg0)
{
//lbl.move (lbl.LEFT + arg0.getX () - m_intXDown, lbl.TOP + arg0.getY () - m_intYDown);
//System.out.println (arg0.BUTTON1);
}

public void mouseDragged(MouseEvent arg0)
{

}
});
}
}
liw 2004-12-15
  • 打赏
  • 举报
回复
你可以用jsp
samsung508 2004-12-15
  • 打赏
  • 举报
回复
如果没有直接的方法可以调用,那怎样才能实现上述功能呢?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧