当前位置 : 主页 > 编程语言 > java >

《Java 核心技术 卷1》 笔记 第10章 部署应用程序和applet(2) 子目录获取与打包

来源:互联网 收集:自由互联 发布时间:2022-07-13
10.1.3 资源 额外的信息文件被称作资源。 图像、声音、视频等多媒体文件 消息提示配置文件 地图布局文件 使用资源的操作步骤: 获得具有资源的类的Class文件 XX.class getresource(filename


《Java 核心技术 卷1》 笔记 第10章 部署应用程序和applet(2) 子目录获取与打包_开发语言

10.1.3 资源

额外的信息文件被称作资源。

  • 图像、声音、视频等多媒体文件
  • 消息提示配置文件
  • 地图布局文件

使用资源的操作步骤:

  • 获得具有资源的类的Class文件 XX.class
  • getresource(filename)定义资源的位置
  • getResourceAsStream()读取文件中的数据
  • 加载资源:

    URL url = ResourceTest.class.getResource("about.gif");
    Image img = Toolkit.getDefaultToolkit().getImage(url);

    读取文件:

    InputStream stream = ResourceTest.class.getResourceAsStream("about.txt");
    Scanner in = new Scanner(stream);

    示例程序:

    示例程序命令:

    javac ResourceTest.java
    jar cvfm ResourceTest.jar ResourceTest.mf *.class *.gif *.txt
    java -jar ResourceTest.jarimport javax.swing.*;
    import java.awt.*;
    import java.io.InputStream;
    import java.net.URL;
    import java.util.Scanner;

    public class ResourceTest {
    public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
    @Override
    public void run() {
    ResourceTestFrame frame = new ResourceTestFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    }
    });
    }
    }

    class ResourceTestFrame extends JFrame{
    public static final int W = 300;
    public static final int H = 300;
    public ResourceTestFrame(){
    setTitle("ResourceTest");
    setSize(W,H);
    //动图不行,显示不出不报错
    //使用 getClass() 不行,要用 ResourceTestFrame.class
    // System.out.println(ResourceTestFrame.class.getResource("about.gif"));

    URL aboutURL = ResourceTestFrame.class.getResource("tt.png");
    Image img = Toolkit.getDefaultToolkit().getImage(aboutURL);
    // setIconImage(new ImageIcon("./leetcode/editor/cn/com/book/tt.png").getImage());
    setIconImage(img);
    JTextArea textArea = new JTextArea();
    InputStream stream = getClass().getResourceAsStream("about.txt");

    Scanner in = new Scanner(stream);
    while(in.hasNext()){
    textArea.append(in.nextLine()+"\n");
    add(textArea);
    }
    }
    }

    调试小坑介绍:

  • Gif 图加载失败(可能不用动图可以,动图失败)
  • getClass().getResource 失败,要用 ResourceTestFrame.class
  • 目录在同一文件夹
  • java -Dfile.encoding=utf-8 -jar ResourceTest.jar 注意如果不加编码文件读入的文本会乱码
  • 相关内容:选择 《Java核心技术 卷1》查找相关笔记

    评论

    网友评论