`

文本文件读写实用程序

    博客分类:
  • Java
阅读更多
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;

/**
 * 提供了一些"能让你将文本文件当作字符串来读写"的static方法。此外,你还可以创建一个
 * "会把文件的内容逐行存入ArrayList的"TextFile类,这样在处理文件的时候,就能使用
 * ArrayList的功能了。
 */
public class TextFile extends ArrayList {
	/**
	 * 读取指定的文件到内存中
	 * @param fileName 文件名
	 * @return 将整个文件内容以字符串返回
	 * @throws IOException String
	 */
	public static String read(String fileName) throws IOException {
		return read(fileName, System.getProperty("file.encoding"));
	}

	/**
	 * 
	 * 以特定的编码方式读取指定的文件到内存中
	 * @param fileName 文件名
	 * @param encoding 编码方式
	 * @return 将整个文件内容以字符串返回
	 * @throws IOException String
	 */
	public static String read(String fileName, String encoding) throws IOException {
		String lineSeparator = System.getProperty("line.separator");
		StringBuffer sb = new StringBuffer();
		BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(
				fileName), encoding));
		String s;
		while ((s = in.readLine()) != null) {
			sb.append(s);
			sb.append(lineSeparator);
		}
		in.close();
		return sb.toString();
	}

	/**
	 * 把文本写入文件中
	 * @param fileName 文件名
	 * @param text 要写的文本
	 * @throws IOException void
	 */
	public static void write(String fileName, String text) throws IOException {
		write(fileName, text, System.getProperty("file.encoding"));
	}

	/**
	 * 
	 * 把文本以指定的编码方式写入文件中
	 * @param fileName 文件名
	 * @param text 要写的文本
	 * @param encoding 编码方式
	 * @throws IOException void
	 */
	public static void write(String fileName, String text, String encoding)
			throws IOException {

		PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(
				new FileOutputStream(fileName), encoding)));
		out.print(text);
		out.close();
	}

	/**
	 * 将指定的文件读出后以行为单位存入ArrayList中
	 * @param fileName 文件名
	 * @throws IOException
	 */
	public TextFile(String fileName) throws IOException {
		super(Arrays.asList(read(fileName).split(System.getProperty("line.separator"))));
	}

	/**
	 * 将ArrayList中处理过后的文件写回到指定的文件中
	 * @param fileName 文件名
	 * @throws IOException void
	 */
	public void write(String fileName) throws IOException {
		PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(fileName)));
		for (int i = 0; i < size(); i++)
			out.println(get(i));
		out.close();
	}

	public static void main(String[] args) throws Exception {
		String file = read("src/TextFile.java", "GBK");
		write("src/test.txt", file);
		TextFile text = new TextFile("src/test.txt");
		text.write("src/test2.txt");
		for (int i = 0; i < text.size(); i++) {
			System.out.println(text.get(i));
		}
	}
}

 

分享到:
评论

相关推荐

    VBNET逐行读写文本文件

    本人利用VB.NET中FileOpen()函数编写对文本文件的逐行写入和逐行读取的小程序,而且写的文本没有双引号,很实用的

    c语言文件读写操作代码.zip

    程序首先打开名为input.txt的文本文件进行读取,使用fread函数将内容读取到缓冲区,并利用printf输出到控制台。随后,程序关闭了读取的文件。接下来,程序打开output.txt文件用于写入,通过fwrite函数将一个预定义的...

    fileutil:我写的 Golang 文件读写实用程序

    文件工具我根据网络上各种公共资源中提供的示例编写的 Golang 文本文件读取和写入实用程序。 /* * Reads a file line by line into a channel * * c := fileutil.ReadLinesChannel(fileName) * for line := range c ...

    TextFile:一个用于处理简单文本文件的java实用程序类。 实用程序包括读写方法,以及清除,追加,复制粘贴和其他方法。 扩展java.io.File

    文本文件一个用于处理简单文本文件的java实用程序类。 实用程序包括读取和写入方法,以及清除,追加,复制/粘贴和其他方法。 扩展java.io.File。

    ASP.NET程序设计实用教程(包括源代码)

    含有所有的源代码。 所有程序均在Windows 2000+.NET ...4.因为从光盘复制的文件属性是只读的,所以数据库文件和文本文件是需要读写的。在使用前,将所有文件和文件夹的只读属性去掉,否则将造成某些程序不能执行。

    简单多用户文件系统-操作系统课程设计.doc

    列目录时列出文件 名、文件长度、是否锁定、物理地址,源文件可以进行读写保护。主函数所有功能流程 图如图1所示。 图1 主函数功能流程图 4.2详细设计 4.2.1用户登录(login)模块 首次进入系统时,还没有文件系统,则...

    操作系统课程设计-文件系统的模拟设计.doc

    文件创建函数 算法:查找当前目录下是否有同名文件,是则退出,否则让用户输入文本文件内容 ,以'###'结束。申请inode空间(ialloc函数),申请硬盘block空间(balloc函数), 申请失败则结束。将文件内容写入inode...

    C语言实战105例源码

    实例34 文件读写基本操作 102 实例35 格式化读写文件 105 实例36 成块读写操作 107 实例37 随机读写文件 108 实例38 文件的加密和解密 111 实例39 实现两个文件的连接 113 实例40 实现两个文件信息的...

    VB串口通信UART程序实例源码合集学习资料(200个).zip

    vb与串口通信的关于回路测试的小程序很实用.rar VB与欧姆龙PLC通过RS-232串口通讯的上位机程序,焦作中州炭素有限公司自动配料系统.rar VB中串口事件处理函数的示例.rar VB中的串口通讯,串口通讯作为一种古老而又...

    c语言实战105例源码

    34 文件读写基本操作  35 格式化读写文件  36 成块读写操作  37 随机读写文件  38 文件的加密和解密  39 实现两个文件的连接  40 实现两个文件信息的合并  41 文件信息统计  42 文件分割 ...

    C#程序开发范例宝典(第2版).part08

    实例224 文本文件的操作 313 实例225 使用ROT13加密解密文件 314 6.7 其他 315 实例226 获取窗口文本 315 实例227 判断文件是否正在被使用 316 实例228 在程序中调用.HLP文件 317 实例229 C#中实现文件拖放 ...

    程序源代码]JavaEE实用教程(第10版).zip

    操作配置文件.html 订阅报刊杂志.html 读写文本文件.html 工程师房屋建造.html 机场登机问讯处.html 就诊时排队叫号.html 军训分组训练.html

    C程序范例宝典(基础代码详解)

    6.1 文件读写操作 258 实例180 读取磁盘文件 258 实例181 将数据写入磁盘文件 259 实例182 格式化读写文件 260 实例183 成块读写操作 262 实例184 随机读写文件 263 实例185 以行为单位读写文件 265 ...

    FS2410裸机系统EasySystem

    DataAccess --基于EasyFS的特定格式文件读写,创建。目前实现了文本文件,wav和24位BMP图片。 EasyFS --包含了FAT16文件系统的读写程序。 EasyGUI --各种各样的图形绘制和字体显示。 Drives --包含开发板上的...

    ASP.NET4高级程序设计(第4版) 3/3

    12.2.1 文本文件 415 12.2.2 二进制文件 416 12.2.3 上传文件 417 12.2.4 使文件对多用户安全 419 12.2.5 压缩 423 12.3 序列化 423 12.4 总结 426 第13章 LINQ 427 13.1 LINQ基础 427 13.1.1 ...

    C#程序开发范例宝典(第2版).part12

    实例224 文本文件的操作 313 实例225 使用ROT13加密解密文件 314 6.7 其他 315 实例226 获取窗口文本 315 实例227 判断文件是否正在被使用 316 实例228 在程序中调用.HLP文件 317 实例229 C#中实现文件拖放 ...

    《Delphi7编程100例》代码

    ToolBar工具栏控件的使用动态建立主菜单选项窗口界面的动态分隔条动态...文本资料一样处理数据表中的信息远程数据库登录远程数据库的离线处理在远程数据库中实现主从表关系动态设置远程数据库的查询参数在远程数据库...

    PSG9080_ARB:PSG9080信号发生器的任意波downloadupload命令行实用程序

    PSG9080信号发生器的任意波下载/上传命令行实用程序 用法 将PSG9080信号发生器连接到USB并打开电源 如果需要,请安装CH340驱动程序 运行命令行工具 将1号任意波从PSG9080下载到文件中: PSG9080_ARB.exe COM3-读取...

Global site tag (gtag.js) - Google Analytics