Java多种方式写文件

概要:

用Java写文件有多种方法,对于不同类型的数据,有不同的写入方法的技术要点如下:

FileOutputStream打开文件输出流,通过write方法以字节为单位写入文件,是写文件最通用的方法,能写入任何类型的文件,特别适合写二进制数据文件。

OutputStreamWriter打开文件输出流,通过write方法以字符为单位写入文件,能够将字符数组和字符串写入文件。

PrintWriter打开文件输出流,通过print和println方法写字符串到文件,与System.out的用法相似,常用于写入格式化的文本。

当文件写完后关闭输出流。

| |目录

代码

package net.xsoftlab.baike;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.Writer;

public class TextWriteFile {
	public static void writeFileByBytes(String fileName) {// 以字节为单位写文件
		File file = new File(fileName); // 创建一个文件
		OutputStream out = null;
		try {
			out = new FileOutputStream(file); // 打开文件输出流
			String content = "枫桥夜泊\n张继\n月落乌啼霜满天,\n江枫渔火对愁眠。\n姑苏城外寒山寺,\n夜半钟声到客船";
			byte[] bytes = content.getBytes(); // 读取输出流中的字节
			out.write(bytes); // 写入文件
			System.out.println("写文件" + file.getAbsolutePath() + "成功!");
		} catch (IOException e) {
			System.out.println("写文件" + file.getAbsolutePath() + "失败!");
			e.printStackTrace();
		} finally { // 内容总执行
			if (out != null) {
				try {
					out.close(); // 关闭输出文件流
				} catch (IOException e1) {
				}
			}
		}
	}

	public static void writeFileByChars(String fileName) { // 以字符为单位写文件。
		File file = new File(fileName); // 创建文件
		Writer writer = null;
		try {
			writer = new OutputStreamWriter(new FileOutputStream(file)); // 打开文件输出流
			String content = "枫桥夜泊\n张继\n月落乌啼霜满天,\n江枫渔火对愁眠。\n姑苏城外寒山寺,\n夜半钟声到客船";
			writer.write(content); // 写入文件
			System.out.println("写文件" + file.getAbsolutePath() + "成功!");
		} catch (IOException e) {
			System.out.println("写文件" + file.getAbsolutePath() + "失败!");
			e.printStackTrace();
		} finally { // 内容总执行
			if (writer != null) {
				try {
					writer.close(); // 关闭输出文件流
				} catch (IOException e1) {
				}
			}
		}
	}

	public static void writeFileByLines(String fileName) { // 以行为单位写文件
		File file = new File(fileName); // 创建文件
		PrintWriter writer = null;
		try {
			writer = new PrintWriter(new FileOutputStream(file)); // 打开文件输出流
			writer.println("   枫桥夜泊	"); // 写字符串
			writer.print(true); // 写入布尔类型
			writer.print(155); // 写入整数类型
			writer.println(); // 换行
			writer.flush(); // 写入刷新文件
			System.out.println("写文件" + file.getAbsolutePath() + "成功!");
		} catch (FileNotFoundException e) {
			System.out.println("写文件" + file.getAbsolutePath() + "失败!");
			e.printStackTrace();
		} finally { // 内容总执行
			if (writer != null) {
				writer.close(); // 关闭输出文件流
			}
		}
	}

	public static void main(String[] args) { // java程序主入口处
		String fileName = "D:/poem.txt";
		System.out.println("1.以字节为单位写文件:");
		TextWriteFile.writeFileByBytes(fileName); // 调用方法写文件
		fileName = "D:/poem1.txt";
		System.out.println("2.以字符为单位写文件:");
		TextWriteFile.writeFileByChars(fileName); // 调用方法写文件
		fileName = "D:/poem2.txt";
		System.out.println("3.以行为单位写文件:");
		TextWriteFile.writeFileByLines(fileName); // 调用方法写文件
	}
}


评论关闭
评论 还能输入200
评论关闭
评论 还能输入200
  • 全部评论(0)
资料加载中...
已关注 , 取消