/minip.jpg

技术博客分享

Java动态执行代码字符串

/weixin_miniapp.png

Java动态执行代码字符串

1. 步骤

假如我们需要动态执行一段字符串形式的 java 代码,大概需要这样几步:

  • 生成文件(具体的文件/内存中的文件)
  • 调用 javac 编译
  • 通过反射执行

2. 生成文件

  • 确定字符串的形式
    • 字符串已经是完整的 .java 形式,那么就不再需要再做操作,写入文件即可
    • 字符串只是一个方法,需要听过 UUID 为其包装出一个类名,再写入文件
    • 字符串只是一段字符串,就需要即为其加上方法名,又要加上类名,然后再写入文件

2.1 IO写入具体的磁盘文件

  • 阻塞字节流输出
public class ToFile {
    //字节流方式
    public static void main(String[] args) throws IOException {
        String code = new String("public class A{}");
        FileOutputStream outputStream = new FileOutputStream("E:\\spring\\dynamicJava\\src\\main\\resources\\T1.java");
        byte[] codeBytes = code.getBytes(StandardCharsets.UTF_8);
        outputStream.write(codeBytes);
        outputStream.close();
    }
}
  • 字符流输出
public class ToFileByWriter {
    //字符流方式
    public static void main(String[] args) throws IOException {
        String code = new String("public class B{}");
        FileWriter writer = new FileWriter("E:\\spring\\dynamicJava\\src\\main\\resources\\T2.java");
        writer.write(code);
        writer.flush();
        writer.close();
    }
}
  • RandomAccessFile 的方式

RandomAccessFile 是 Java 输入/输出流体系中功能最丰富的文件内容访问类,它提供了众多的方法来访问文件内容,它既可以读取文件内容,也可以向文件输出数据。由于 RandomAccessFile 可以从任意位置访问文件,所以在只需要访问文件部分内容的情况下,使用 RandonAccessFile 类是一个很好的选择。

2024-11-22-前端图形开发canvas入门

/weixin_miniapp.png

前端图形开发canvas入门

一、Canvas 概述

Canvas 是 HTML5 新增的一个元素,它可以用于在网页上绘制图像、动画和其他视觉效果。Canvas 可以看作是一个画布,我们可以在这个画布上绘制各种图形和文本。Canvas 有很多优点,比如它的性能非常出色,可以实现非常复杂的交互效果,而且它的兼容性也非常好。