URL类
URL统一资源定位器(Uniform Resource Locator),Java使用URL创建对象的应用程序称为客户端程序,一个URL对象存放着一个具体的资源的引用,一个URL对象通常包含最基本的三部分信息,协议,地址和资源
URL构造方法
URL类使用以下构造方法创建一个URL对象
public URL(String uspec);
例如
try {
URL url = new URL("https://kanbanflow.com/board/M1Rgeu");
} catch (MalformedURLException e) {
e.printStackTrace();
}
读取URL资源
URL对象调用InputStream openStream()
方法可以返回一个输出流,该输出流指向URL对象所包含的资源
由于网络速度或其他因素问题,最好创建一个线程单独运行
显示URL资源中的HTML文件
Java中JEditorPane
容器可以解析,执行HTML文件,也就是说可以把HTML文件读入JEditorPane
有以下的构造方法
public JEditorPane()
public JEditorPane(URL initialPage)
public JEditorPane(String url)
另外还可以调用public void setPage(URL page)方法显示新的URL中的资源
处理超链接
JEditorPane
对象调用setEditable()
方法将编辑属性设置为false,使网页不可编辑
其次JeditorPane
对象调用addHyperlinkListener(HyperlinkListener listener)
获取超链接事件监视器实现超链接功能
综合的例子
package Chapter_16.Part_1;
import javax.swing.*;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.net.URL;
class myWindow extends JFrame implements Runnable, ActionListener {
Thread thread;
JTextField jTextField;
URL url;
JButton jButton;
JEditorPane jEditorPane;
myWindow() {
jTextField = new JTextField(30);
jEditorPane = new JEditorPane();
thread = new Thread(this);
jButton = new JButton("GO");
setTitle("浏览窗口");
setBounds(500, 500, 600, 600);
Container container = new Container();
setVisible(true);
jButton.addActionListener(this);
container.setLayout(new FlowLayout());
container.add(new JLabel("输入网址"));
container.add(jTextField);
container.add(jButton);
add(container, BorderLayout.NORTH);
jEditorPane.setEditable(false);
jEditorPane.addHyperlinkListener(new HyperlinkListener() {
@Override
public void hyperlinkUpdate(HyperlinkEvent hyperlinkEvent) {
if (hyperlinkEvent.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { //实现超链接
try {
jEditorPane.setPage(hyperlinkEvent.getURL());
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
add(new JScrollPane(jEditorPane), BorderLayout.CENTER);
validate();
}
@Override
public void actionPerformed(ActionEvent actionEvent) {
if (thread.isAlive() == false) {
thread = new Thread(this);
thread.start();
}
}
@Override
public void run() {
try {
jEditorPane.setText(null);
url = new URL(jTextField.getText());
jEditorPane.setPage(url);
} catch (Exception e) {
return;
}
}
}
public class Example16_1 {
public static void main(String[] args) {
myWindow myWindow = new myWindow();
}
}
运行效果
InetAddress类
获取Internet主机上的地址
可以使用InetAddress
类的静态方法
getByName(String s);
将一个域名或IP地址传给s,然后获得一个InetAddress对象
,该对象含有主机地址的域名和IP,可以调用toString()
方法将其输出
另外InetAddress类还有两个实例方法
public String getHostName()
//获取域名public String getHostAddres()
//获取IP地址
获取本地机的地址
可以调用静态方法getLocalHost()
获得一个InetAddress对象
具体例子
package Chapter_16.Part_1;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class Example16_2 {
public static void main(String[] args) {
try {
InetAddress inetAddress = InetAddress.getByName("www.baidu.com"); //查看百度的IP地址
System.out.println(inetAddress.toString());
System.out.println(inetAddress.getHostAddress()); //查看IP地址
} catch (UnknownHostException e) {
System.out.println("无法找到");
}
}
}
运行结果
C:\Users\Administrator\.IntelliJIdea2019.3\config\jdbc-drivers\Apache Derby\10.14.1.0\derby-10.14.1.0.jar" Chapter_16.Part_1.Example16_2
www.baidu.com/14.215.177.38
14.215.177.38
进程已结束,退出代码 0
文件目录
系统为每个文件设置一个
描述性数据结构
–文件控制块(FCB),文件目录就是文件控制块的有序集合
文件控制块
文件控制块是系统为管理文件而设置的一个数据结构.FCB是文件存在的标志,通常保函三类信息:
基本信息类
,存取控制信息类
和使用信息类
基本信息类:文件名、文件的物理位置、文件长度和文件块数等。
存取控制信息类:文件的存取权限。在UNIX系统中,将用户分成文件主、同组用户和一般用户三类,它们具有不同的操作权限。
使用信息类:建立文件的日期和时间、最后访问日期和时间、最后修改日期和当前使用的信息等。
为了实现文件目录的管理,通常将文件目录以文件的形式保存在外存空间,这个文件就被称为目录文件。
目录文件是长度固定的记录式文件。
目录结构
文件目录的组织与管理是文件管理中的一个重要方面,常见的目录结构有三种:
一级目录结构
、二级目录结构
和多级目录结构
。
多级目录结构像一棵倒置的有根树,所以也称为树形目录结构
。
从树根向下,每一个节点是一个目录,叶节点是文件)DOS和UNIX等操作系统均采用多级目录结构。
在采用多级目录结构的文系统中,用户要访问一个文件,必须指出文件所在的路径名。
路径名包含从根目录开始到该文件的通路上所有各级目录名。
各级目录名之间,目录名与文件名之间需要用分隔符隔开。
例如,在DOS中分隔符为“\”,在UNIX中分隔符为“/”。
绝对路径名
是指从根目录开始的完整文件名,即由从根目录开始的所有目录名以及文件名构成的。
CET4P201
- damp
- shift
- omit
- extension
- adequate
- departure
- sophisticated
- assumption
- instruction
- fry
- potential