Java写操作

时间:2021-03-28 16:12:45
 //:ThinkingInJava/net.mindview.io/write2File.java
package net.mindview.io; import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.RandomAccessFile;
import java.io.StringReader;
import java.util.LinkedList; /**
*
* @Time 2014-6-10
* @Descri write2File.java 文件写操作细究
* 1> 在文件尾部添加新的内容
* 2> 改变文件指定行的内容
* 3> 改变文件指定位置处的内容
* 4> 比较不同方式的文件操作
* @author wgm
*/
public class write2File {
/**
* PrintWriter:此方式若下一次再打开文件流,欲向其中写入新的内容,则原先内容将被覆盖
* @throws IOException
*/
public static void BasicFileOut() throws IOException{
BufferedReader br=new BufferedReader(new FileReader("day1"));
PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter("day2")));
int linCount=1;
String s;
while((s=br.readLine())!=null){
out.println(linCount++ +":"+s);
}
out.close(); }
/**
* 实现在文件尾追加新的内容
* @throws IOException
*/
public static void RandFileOut() throws IOException{
RandomAccessFile rand=new RandomAccessFile("day2", "rw");
rand.seek(rand.length()-1);
String line="12: wgm";
//writeUTF方法在写字符串之前会先写两个字节,表示实际的字节数
rand.writeUTF(line);
//验证追加的内容
rand.seek(rand.getFilePointer()-9);
System.out.println(rand.readUTF());
//改变文件指定行的内容,回到文件首部,读取一行,改变该行内容
rand.seek(0);
line=rand.readLine();
line="This line has been changed!!!";
rand.seek(0);
rand.writeUTF(line+"\n");
rand.close(); } } ///:~