JAVA读取服务器端文件

JAVA读取服务器端文件

一、实验要求

创建一个URL对象,然后让URL对象返回输入流,通过该输入流读取URL所包含的资源文件。

二、实验内容

1、开机后,创建目录C:\Users\lenovo\eclipse-workspace。把这个目录作为我们的工作目录;

2、打开eclipse软件,进入工作空间,创建名为JAVA的Java Project。接着,在这个项目下的src文件夹里创建名为实验1的包;

3、右击包,创建相关类并输入代码如下:

package 实验1;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import javax.swing.*;
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();//【代码2】 //url调用getHost()
            int urlPortNumber= url.getPort();  
            String fileName=url.getFile();
            InputStream in = url.openStream();//【代码3】 //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;
      }  
   }
}

4、运行程序
在这里插入图片描述

三、遇到问题

做该题时,输入书中的网址出现错误,后来明白需要建立自己的IIS站点,操作步骤如下:

1、控制面板→程序→启动或关闭Windows功能→Internet Information Services→勾选所有FTP服务;勾选万维网服务的应用程序开发功能中的.NET Extensibility 4.8、ASP.NET 4.8、ISAPI扩展、SAPI筛选器

2、控制面板→系统和安全→管理工具→Internet Information Services (IIS管理)→添加网站

网站名称随意取;物理路径为你要读取的文档所放地;IP地址可不填;端口最好不填8080;主机名看需求填写

3、配置默认文档

4、启动目录浏览功能

5、右击网站→编辑权限→安全选项卡→添加一个Everyone用户→勾选完全控制

6、在网页中输入localhost:端口(自己填的)或者本地ipv4地址:端口(自己填的)

重新运行Java程序,输入相应内容,终于成功!

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值