java读写txt文件
本文转载自:http://www.blogjava.net/kenzhh/archive/2007/12/21/169364.htmljava创建TXT文件并进行读、写、修改操作
????????这周忙的连滚带爬的,终于在周末前把项目完工了。这次主要做的是一个UDP协议的转发器,是一个纯java写的程序,没有任何的框架在里面。其中为了保留住传进来的数据,我们用TXT文本记录下这些数据。文件代码传上来,需要的朋友直接下载就可以用。

import?java.io.*;



/**

?*?

?*?功能描述:创建TXT文件并进行读、写、修改操作

?*??????

?*?@author?<a?href="mailto:zhanghhui@126.com">KenZhang</a>

?*?@version?1.0?

?*?Creation?date:?2007-12-18?-?下午06:48:45

?*/

public?class?ReadWriteFile?{

????public?static?BufferedReader?bufread;

????//指定文件路径和名称

????private?static?String?path?=?"D:/suncity.txt";

????private?static??File?filename?=?new?File(path);

????private?static?String?readStr?="";



????/**

?????*?创建文本文件.

?????*?@throws?IOException?

?????*?

?????*/

????public?static?void?creatTxtFile()?throws?IOException{

????????if?(!filename.exists())?{

????????????filename.createNewFile();

????????????System.err.println(filename?+?"已创建!");

????????}

????}

????

????/**

?????*?读取文本文件.

?????*?

?????*/

????public?static?String?readTxtFile(){

????????String?read;

????????FileReader?fileread;

????????try?{

????????????fileread?=?new?FileReader(filename);

????????????bufread?=?new?BufferedReader(fileread);

????????????try?{

????????????????while?((read?=?bufread.readLine())?!=?null)?{

????????????????????readStr?=?readStr?+?read+?"\r\n";

????????????????}

????????????}?catch?(IOException?e)?{

????????????????//?TODO?Auto-generated?catch?block

????????????????e.printStackTrace();

????????????}

????????}?catch?(FileNotFoundException?e)?{

????????????//?TODO?Auto-generated?catch?block

????????????e.printStackTrace();

????????}


????????System.out.println("文件内容是:"+?"\r\n"?+?readStr);

????????return?readStr;

????}

????

????/**

?????*?写文件.

?????*?

?????*/

????public?static?void?writeTxtFile(String?newStr)?throws?IOException{

????????//先读取原有文件内容,然后进行写入操作

????????String?filein?=?newStr?+?"\r\n"?+?readStr?+?"\r\n";

????????RandomAccessFile?mm?=?null;

????????try?{

????????????mm?=?new?RandomAccessFile(filename,?"rw");

????????????mm.writeBytes(filein);

????????}?catch?(IOException?e1)?{

????????????//?TODO?自动生成?catch?块

????????????e1.printStackTrace();

????????}?finally?{

????????????if?(mm?!=?null)?{

????????????????try?{

????????????????????mm.close();

????????????????}?catch?(IOException?e2)?{

????????????????????//?TODO?自动生成?catch?块

????????????????????e2.printStackTrace();

????????????????}

????????????}

????????}

????}

????

????/**

?????*?将文件中指定内容的第一行替换为其它内容.

?????*?

?????*?@param?oldStr

?????*????????????查找内容

?????*?@param?replaceStr

?????*????????????替换内容

?????*/

????public?static?void?replaceTxtByStr(String?oldStr,String?replaceStr)?{

????????String?temp?=?"";

????????try?{

????????????File?file?=?new?File(path);

????????????FileInputStream?fis?=?new?FileInputStream(file);

????????????InputStreamReader?isr?=?new?InputStreamReader(fis);

????????????BufferedReader?br?=?new?BufferedReader(isr);

????????????StringBuffer?buf?=?new?StringBuffer();


????????????//?保存该行前面的内容

????????????for?(int?j?=?1;?(temp?=?br.readLine())?!=?null

????????????????????&&?!temp.equals(oldStr);?j++)?{

????????????????buf?=?buf.append(temp);

????????????????buf?=?buf.append(System.getProperty("line.separator"));

????????????}


????????????//?将内容插入

????????????buf?=?buf.append(replaceStr);


????????????//?保存该行后面的内容

????????????while?((temp?=?br.readLine())?!=?null)?{

????????????????buf?=?buf.append(System.getProperty("line.separator"));

????????????????buf?=?buf.append(temp);

????????????}


????????????br.close();

????????????FileOutputStream?fos?=?new?FileOutputStream(file);

????????????PrintWriter?pw?=?new?PrintWriter(fos);

????????????pw.write(buf.toString().toCharArray());

????????????pw.flush();

????????????pw.close();

????????}?catch?(IOException?e)?{

????????????e.printStackTrace();

????????}

????}

????/**

?????*?main方法测试

?????*?@param?s

?????*?@throws?IOException

?????*/

????public?static?void?main(String[]?s)?throws?IOException?{

????????ReadWriteFile.creatTxtFile();

????????ReadWriteFile.readTxtFile();

????????ReadWriteFile.writeTxtFile("20080808:12:13");

//????????ReadWriteFile.replaceTxtByStr("ken",?"zhang");

????}

}