JAVA I/O流 (二)--一个读写文件的小工具类TextFile

    本文是一个TextFile类,通过这个类我们可以调用其中的方法来简化对文件的读写,这段代码的可用性比较强。这个TextFile类如下:

  

import java.io.*;
import java.util.*;
public class TextFile extends ArrayList<String>{
	public static String read(String filename){
		StringBuilder sb=new StringBuilder();
		try{
			BufferedReader in=new BufferedReader(new FileReader(
					new File(filename).getAbsoluteFile()));
			try{
				String s;
				while((s=in.readLine())!=null){
					sb.append(s);
					sb.append("\n");//在读的过程中换行符会被去除掉,因此需要为每行加上换行符
				}
			}finally{
				in.close();
			}
		}catch(IOException e){
			throw new RuntimeException(e);
		}
		return sb.toString();
	}
	public TextFile(String filename,String splitter){
		super(Arrays.asList(read(filename).split(splitter)));
		if(get(0).equals("")) remove(0);
	}
	public TextFile(String filename){
		this(filename,"\n");
	}
	public void write(String filename){
		try{
			PrintWriter out=new PrintWriter(new File(filename).getAbsoluteFile());
			try{
				for(String item : this) out.println(item);
			}finally{
				out.close();
			}
		}catch(IOException e){
			throw new RuntimeException(e);
		}
	}
	public static void write(String filename,String text){
		//其中filename指明要写入的文件名,text指明写入的字符串内容
		try{
			//虽然字符串里面含有换行符,但是直接写入文件里面的时候它不会被识别
			//我们采用split方法,以字符串里面的“\n"为界将字符串拆开
			//然后写文件的时候我们再人为地进行换行操作。
			//如果直接将text里面的内容写入文件里面,可以看到text里面的"\n"符号在文件里面得不到体现
			FileWriter fwriter=new FileWriter(new File(filename).getAbsoluteFile());
			BufferedWriter out=new BufferedWriter(fwriter);
			String []tx=text.split("\n");
			try{
				for(int i=0;i<tx.length;i++)
				{
					out.write(tx[i]);
					out.newLine();
				}
			
				
			}finally{
				out.flush();
				out.close();
			}
		}catch(IOException e){
			throw new RuntimeException(e);
		}
	}
	public static void main(String []args)
	{
		TextFile tf=new TextFile("TextFile.txt");
		tf.write("dd.zip");
	}
}
    那么如何利用这个类读写文件呢?
    假设已经存在一个TextFile.txt文件
    (1)调用静态方法read()读文件:String str=TextFile.read("TextFile.txt");这样就可以将文件内容读取到字符串中去了。
    (2)调用静态方法write(String filename,String text)写文件:紧接着上面例子,假设TextFile.txt的内容已经写到字符串str里面了。现在我们需要将str内容写入到文件"Text.txt"里面。可按照如下操作即可:
       TextFile.write("Text.txt",str);
    (3)调用非静态方法write(String filename)实现文件复制:假设我们要将已经存在的"TextFile.txt"的文件复制给一个不存在的文件“Text2.txt",我们可以采用以下方式:
       TextFile tFile=new TextFile("TextFile.txt");
       tFile.write("text2.txt");
    上面介绍了这3个方法的使用,使用这个小工具类可以简化对文件的操作。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值