我需要在java中将java类文件作为字符串读取。
我的代码是
String path = "C:/java/MainClass.class";
String content = new String(Files.readAllBytes(Paths.get(path)));
当我打印内容变量时,我希望代码可以工作,因为它适用于简单的文本文件,我的预期输出是这样的
public class MainClass {public static void main(String [] args){ System.out.print(“这是一个测试文件”); }}
将来我还希望将其他格式的文件作为字符串读取:.cs,.py,。config
请告诉我需要注意的更改,以便将其作为简单的文本文件阅读。
答案 0 :(得分:4)
请告诉我需要注意的更改,以便将其作为简单的文本文件阅读。
你想做的事是不可能的。 " .class" file包含字节码而不是源代码,字节码不能转回原始的Java源代码。
您可以做的最好的事情是使用反编译器。但要注意:
另一种选择是使用反汇编程序,以像javap
命令的输出格式获取代码。
另一方面,如果你只是想读一个" .java"用Java编写的文件,你的代码就可以了。唯一的问题可能是源代码文件中使用的字符编码,但大多数Java源代码都是用ASCII编码的......