Java 追加文件内容

概要:

Java追加文件内容

通过RandomAccessFile以读写的方式打开文件输出流,使用它的seek方法可以将读写指针移到文件尾,再使用它的write方法将数据写到读写指针后面,完成文件的追加。

通过FileWriter打开文件输出流,构造FileWriter时指定写入模式,是一个布尔值,为true时表示写入的内容添加到已有文件内容的后面,为false时重新写文件,以前的数据被清空,默认为false。

| |目录

代码

package net.xsoftlab.baike;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.RandomAccessFile;

public class TextSuperaddition {// 将内容追加到文件尾部
	// 使用RandomAccessFile对象实现内容追加
	public static void addFirst(String fileName) {
		try {
			// 打开一个随机访问文件流,按读写方式
			RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");
			long fileLength = randomFile.length();// 获得文件字节数
			randomFile.seek(fileLength);// 将写文件指针移到文件尾。
			String content = "If you would know the value of money, go and try to borrow some.\n"
					+ "要想知道钱的价值,就想办法去借钱试试。\n";
			randomFile.write(content.getBytes("utf-8"));// 内容写到文件内容尾部
			randomFile.close();
		} catch (IOException e) {// 捕获异常
			e.printStackTrace();
		}
	}

	// 使用FileWriter对象实现内容追加
	public static void addSecond(String fileName) {
		try {
			// 打开一个写文件器,true表示以追加形式写文件
			FileWriter writer = new FileWriter(fileName, true);
			String content = "That man is the richest whose pleasure are the cheapest.\n" + "能处处寻求快乐的人才是最富有的人。\n";
			writer.write(content);// 内容写到文件内容尾部
			writer.close();
		} catch (IOException e) {// 捕获异常
			e.printStackTrace();
		}
	}

	public static void readFileByLines(String fileName) {// 以行为单位读取文件
		File file = new File(fileName);
		BufferedReader reader = null;// 创建缓存读取
		try {
			// 以行为单位读取文件内容,一次读一整行
			reader = new BufferedReader(new FileReader(file));// 将文件放在缓存读取中
			String tempString = null;
			int line = 1;
			// 一次读入一行,直到读入null为文件结束
			while ((tempString = reader.readLine()) != null) {
				// 显示行号
				System.out.println("line " + line + ": " + tempString);
				line++;
			}
			reader.close();
		} catch (IOException e) {// 捕获异常
			e.printStackTrace();
		} finally {// 内容总执行
			if (reader != null) {
				try {
					reader.close();// 关闭缓存读取
				} catch (IOException e1) {
				}
			}
		}
	}

	public static void main(String[] args) {// java程序主入口处
		String fileName = "D:/poem.txt";
		System.out.println("1.RandomAccessFile对象实现内容追加:");
		addFirst(fileName);// 调用方法1
		System.out.println("2.FileWriter对象实现内容追加:");
		addSecond(fileName);// 调用方法2
		System.out.println("追后后文件内容显示:");
		readFileByLines(fileName);// 调用TextReadFile类的按行读取文件方法
	}
}


评论关闭
评论 还能输入200
评论关闭
评论 还能输入200
资料加载中...
已关注 , 取消