你的"/n"错了,应该是"\n",但是这样写的用Windows的记事本打开看,会发现回车的地方是个黑色的方块,但是用类似UltraEdit的工具打开,发现换了行。首先回车,换行对应的十六进制的码为,0D,0A,换算成十进制为13,10。如果你要在文本的后面实现回车,换行,就只用写入这两个的十进制数字就行了。下面是我的测试代码。import java.io.*;
/**
* @author tujianling
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class CWrite { public static void main(String[] args) throws Exception {
File file = new File("t.txt");
//文件不存在,就创建
if(!file.exists())
file.createNewFile();
String strThing = "aaabbb"; //这个是你要写入的文本
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(strThing); //写入第一行数据
bw.write(13); //写入回车的码
bw.write(10); //写入换行的码
bw.write(strThing); //写入第二行数据,可以发现换了行
bw.flush();
fw.flush();
bw.close();
fw.close();
}
}
/**
* @author tujianling
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class CWrite { public static void main(String[] args) throws Exception {
File file = new File("t.txt");
//文件不存在,就创建
if(!file.exists())
file.createNewFile();
String strThing = "aaabbb"; //这个是你要写入的文本
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(strThing); //写入第一行数据
bw.write(13); //写入回车的码
bw.write(10); //写入换行的码
bw.write(strThing); //写入第二行数据,可以发现换了行
bw.flush();
fw.flush();
bw.close();
fw.close();
}
}
给个简单的程序
import java.io.*;
public class Untitled4 {
File file = new File("D://1.txt");
int flag;
public Untitled4() {
try{
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
String str="iiiiiiiiiiii/reeeeeeeeeeeeeeeeeeeee/rgggggggggggg";
while((flag = str.indexOf("/r"))!=-1){
String strtem = str.substring(0,flag);
bw.write(strtem);
bw.newLine();
str = str.substring(flag+2);
}
bw.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
public static void main(String[] args) {
Untitled4 untitled41 = new Untitled4();
}}
你的是FileWriter,
是字符流,
故要用BufferWriter类去包装它。
BufferedWriter bw = new BufferedWriter(new FileWriter("hello.dat"));
在I/0这儿,经常要用各种包装流去实现某些效果。还有转换流,如OutputStreamWriter。其实这很好记的,
有Stream的类名就是字节流,
有Writer/Reader的就是字符流,
两个皆有的就是转换流!java.io.*包中的类效率有点低,
特别是在网络应用中有阻塞,
故JSR现在推出了java.nio.*。
你可以看一下!