实验 Java中的网络编程--读取服务器端文件

实验要求:

创建一个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
在这里插入图片描述
完毕

原创文章 10 获赞 10 访问量 407

猜你喜欢

转载自blog.csdn.net/qq_43446007/article/details/106059079
今日推荐