Java中,怎样把一段文字写入一个文本文件中?

Posted

tags:

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

希望高手可以给出一个例子,比如我想把下边的文字写入到文本文件中:

12345
abcde
123.abc

我的思路是先把这3行字符输入到一个集合中,然后再存入文本文件中。但是一直不知道从何下手。刚学Java,请多指教。
多谢各位了。

参考下面代码,把“百度知道”写到D盘的写入文字.txt中

import java.io.*;

public class C 
    public static void main( String[ ] args ) throws Exception 
        PrintWriter pw = new PrintWriter( new FileWriter( "D:\\\\写入文字.txt" ) );
        pw.print("百度知道" );
        pw.close();
    
参考技术A 使用java中的file类,url为文件的绝对地址,str为输入的字符串内容。
代码如下:
string
str="i
love
china!"
file
txt=new
file("url");
if(!txt.exists())
txt.createnewfile();

byte
bytes[]=new
byte[512];
bytes=str.getbytes();
//新加的
int
b=str.length();
//改
fileoutputstream
fos=new
fileoutputstream(txt);
fos.write(bytes,0,b);
fos.close();
参考技术B import java.io.*;

public class C
public static void main( String[ ] args ) throws Exception
PrintWriter pw = new PrintWriter( new FileWriter( "D:\\问好.txt" ) );
pw.print("你好" );
pw.close();



其中D:\\问好.txt是你要存的文件名字,
pw.print("你好" );是你要存入文件的内容,这是最简单的了
参考技术C 你打开一个文件夹,用一个输出流关联着,然后直接将三行内容输出到文件后,再关闭文件和输出流就可以了。
还有什么不懂可以再问
参考技术D import java.io.FileWriter;
import java.io.IOException;

public class TestFile
public static void main(String[] args)
StringBuffer sb=new StringBuffer();
sb.append("12345\n");
sb.append("abcde\n");
sb.append("123.abc");
try
FileWriter fw=new FileWriter("c:/test.txt");
fw.write(sb.toString());
fw.close();
catch (IOException e)
e.printStackTrace();


本回答被提问者和网友采纳

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中,怎样把一段文字写入一个文本文件中?的主要内容,如果未能解决你的问题,请参考以下文章

coreldraw怎样把一段文字自动放入图框内

php怎么将对象或者数组写入一个文本文件

PHP写入到文本文件乱码

怎样让ppt中的文字点一下出现一个,再点,再出现一个,

java中如何把输入的数据以json格式保存在文本里面

vb中怎样使记事本中的内容显示在文本框中