IO - 文件的读写

package test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.TreeSet;

public class TextFile extends ArrayList<String> {

	// Read a file, split by any regular expression:
	public TextFile(String fileName, String splitter) {
		super(Arrays.asList(read(fileName).split(splitter)));
		if ("".equals(get(0)))
			remove(0);
	}

	// Normally read by lines:
	public TextFile(String fileName) {
		this(fileName, "\n");
	}

	public void write(String fileName) {
		try {
			PrintWriter pw = new PrintWriter(new File(fileName).getAbsolutePath());
			try {
				for (String item : this) {
					pw.println(item);
				}
			} finally {
				pw.close();
			}
		} catch (IOException e) {
			throw new RuntimeException(e);
		}

	}

	// Read a file as a single string:
	public static String read(String fileName) {
		StringBuilder sb = new StringBuilder();
		try {
			BufferedReader in = new BufferedReader(new FileReader(new File(fileName).getAbsolutePath()));
			String s;
			try {
				while ((s = in.readLine()) != null) {
					sb.append(s);
					sb.append("\n");
				}
			} finally {
				in.close();
			}

		} catch (IOException e) {
			throw new RuntimeException(e);
		}
		return sb.toString();
	}

	// Write a single file in one method call:
	public static void write(String fileName, String text) {
		try {
			PrintWriter pw = new PrintWriter(new File(fileName).getAbsolutePath());
			try {
				pw.print(text);
			} finally {
				pw.close();
			}
		} catch (IOException e) {
			throw new RuntimeException(e);
		}

	}

	public static void main(String[] args) {
		// Example 1
		String file = read("E:\\\\gittest\\Test1.txt");
		write("E:\\\\gittest\\Test2.txt", file);
		// Example 2
		TextFile tf = new TextFile("E:\\\\gittest\\Test1.txt");
		tf.write("E:\\\\gittest\\Test3.txt");
		// Break into unique sorted list of words:
		TreeSet<String> set = new TreeSet<String>(new TextFile("src\\test\\TextFile.java", "\\W+"));
		// Display the capitalized words:
		System.out.println(set.headSet("a"));

	}
}

  

上一篇:SQLAlchemy建表 更新时间随时间戳自动更新


下一篇:RDD编程