实验要求:
创建一个URL对象,然后让URL对象返回输入流,通过该输入流读取URL所包含的资源文件
--------说白了就是你项目里有个文件,读出来,我采用的本地服务器 运行如下
一、先搭建本地服务器
1.控制面板)程序)程序和功能)启用或关闭 Windows 功能—Internet Information Services全选,等待修改完成
2.控制面板)所有控制面板项,管理工具)选择Internet信息服务(IIS)管理器,网站处右键–添加网站
其中应用程序选DefaultAppPool,可以自己分配ip和端口,默认也行,物理路径添加你的项目,最后点确定
然后就能看见已经添加了 右边选择浏览
首次可能会出现以下报错:
那么我们就按照提示操作操作一遍,在网站选中你的网站,双击
双击目录浏览,然后如下图,点右侧的启用
再回去,启动浏览,就显示目录了
二、新建Java项目
代码如下:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class ReadURLSource {
public static void main(String args[]) {
new NetWin();
}
}
class NetWin extends JFrame implements ActionListener, Runnable {
JButton button;
URL url;
JTextField inputURLText; // 输入URL
JTextArea area;
byte b[] = new byte[118];
Thread thread;
NetWin() {
inputURLText = new JTextField(20);
area = new JTextArea(12, 12);
button = new JButton("确定");
button.addActionListener(this);
thread = new Thread(this);
JPanel p = new JPanel();
p.add(new JLabel("输入网址:"));
p.add(inputURLText);
p.add(button);
add(area, BorderLayout.CENTER);
add(p, BorderLayout.NORTH);
setBounds(60, 60, 560, 300);
setVisible(true);
validate();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
if (!(thread.isAlive()))
thread = new Thread(this);
try {
thread.start();
} catch (Exception ee) {
inputURLText.setText("我正在读取" + url);
}
}
public void run() {
try {
int n = -1;
area.setText(null);
String name = inputURLText.getText().trim();
url = new URL(name); // 使用字符串name创建url对象
String hostName = url.getHost(); // url调用getHost()
int urlPortNumber = url.getPort();
String fileName = url.getFile();
InputStream in = url.openStream(); // url调用方法返回一个输入流
area.append("\n主机:" + hostName + "端口:" + urlPortNumber + "包含的文件名字:" + fileName);
area.append("\n文件的内容如下:");
while ((n = in.read(b)) != -1) {
String s = new String(b, 0, n);
area.append(s);
}
} catch (MalformedURLException e1) {
inputURLText.setText("" + e1);
return;
} catch (IOException e1) {
inputURLText.setText("" + e1);
return;
}
}
}
运行后弹出窗口
输入刚才网站浏览中的地址,后面加上/a.txt
完毕