java怎样把一字符串数组写入.txt文件中?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java怎样把一字符串数组写入.txt文件中?相关的知识,希望对你有一定的参考价值。

参考技术A import java.io.File;\\x0d\\x0aimport java.io.OutputStream;\\x0d\\x0aimport java.io.FileOutputStream;\\x0d\\x0apublic class TestFile \\x0d\\x0apublic static void main(String[] args) throws Exception\\x0d\\x0a//在d盘上创建一个名为testfile的文本文件\\x0d\\x0aFile f = new File("D:"+File.separator+"testfile.txt");\\x0d\\x0a//用FileOutputSteam包装文件,并设置文件可追加\\x0d\\x0aOutputStream out = new FileOutputStream(f,true);\\x0d\\x0a//字符数组\\x0d\\x0aString[] str = "shanghai","beijing","guangdong","xiamen";\\x0d\\x0afor(int i =0; i

java怎么把一段字符串当做代码来执行

在javascript中eval()可以实现字符串转代码,java中需要使用动态编译。
把获得的字符串写入一个临时文件中,然后编译它,在调用其中的函数。
我们把要转换的字符串构造一个完整的类:如果方法是有返回值的.则:

public object eval(string str)
//生成java文件
string s = "class temp";
s += "object rt()"
s += "myclass mc = new myclass();"
s += " return mc."+str+"();";
s += ""
s +="";
file f = new file("temp.java");
printwriter pw = new printwriter(new filewriter(f));
pw.println(s);
pw.close();
//动态编译
com.sun.tools.javac.main javac = new com.sun.tools.javac.main();
string[] cpargs = new string[] "-d", "所在目录","temp.java";
int status = javac.compile(cpargs);
if(status!=0)
system.out.println("没有成功编译源文件!");
return null;

//调用temp的rt方法返回结果:
myclassloader mc = new myclassloader();
class clasz = mc.loadclass("test.class",true);
method rt = clasz.getmethod("rt", new class[] string[].class );
return rt.invoke(null, new object[] new string[0] );
//如果方法没有返回就直接调用


我们可以先写好多个重载的eval,有返回值和没有返回值的.以及可以传递参数的.

这样我们就可以用字符串转换为java的语句来执行.
参考技术A 你的问题其实就是java的动态代码运行问题,以下是解答。
有些情况下,我们不得不动态运行Java代码,以便提供更加灵活的方式,以下代码可参考(在JDK 1.5+平台上运行通过):

public static void main(String[] args)
int i = 10;
String code = "System.out.println(\"Hello World!\"+(13+2*5/3));";
code += "for(int i=0;i<" + i + ";i++)";
code += " System.out.println(Math.pow(i,2));";
code += "";
try
run(code);
catch (Exception e)
e.printStackTrace();



private synchronized static File compile(String code) throws Exception
File file = File.createTempFile("JavaRuntime", ".java", new File(System.getProperty("user.dir")));
file.deleteOnExit();
// 获得类名
String classname = getBaseFileName(file);
// 将代码输出到文件
PrintWriter out = new PrintWriter(new FileOutputStream(file));
out.println(getClassCode(code, classname));
out.close();
// 编译生成的java文件
String[] cpargs = new String[] "-d",
System.getProperty("user.dir") + "\\WebRoot\\WEB-INF\\classes",
file.getName() ;
int status = Main.compile(cpargs);

if (status != 0)
throw new Exception("语法错误!");

return file;



private static synchronized void run(String code) throws Exception
String classname = getBaseFileName(compile(code));
new File(System.getProperty("user.dir")
+ "\\WebRoot\\WEB-INF\\classes\\" + classname + ".class")
.deleteOnExit();
try
Class cls = Class.forName(classname);
Method main = cls.getMethod("method", null);
main.invoke(cls, null);
catch (Exception se)
se.printStackTrace();



private static String getClassCode(String code, String className)
StringBuffer text = new StringBuffer();
text.append("public class " + className + "\n");
text.append(" public static void method()\n");
text.append(" " + code + "\n");
text.append(" \n");
text.append("");
return text.toString();


private static String getBaseFileName(File file)
String fileName = file.getName();
int index = fileName.indexOf(".");
String result = "";
if (index != -1)
result = fileName.substring(0, index);
else
result = fileName;

return result;

以上是关于java怎样把一字符串数组写入.txt文件中?的主要内容,如果未能解决你的问题,请参考以下文章

怎样用JAVA把 文件中的字符串 放到 一个数组中

php怎样将一个字符串写入txt文件 ,注意:前提是不能冲掉txt文件中的值

php怎样将一个字符串写入txt文件 ,注意:前提是不能冲掉txt文件中的值

php怎样将一个字符串写入txt文件 ,注意:前提是不能冲掉txt文件中的值

java怎么把一段字符串当做代码来执行

labview中字符串写入txt时怎么做到不覆盖?