实验要求:
创建一个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; // 输入URLJTextArea 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
完毕