java 文件读写的实用工具

package org.rui.io.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.TreeSet;
/**
 * 文件读写的实用工具
 * @author lenovo
 *
 */
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 (Exception e) {
			throw new RuntimeException(e);
		}
		return sb.toString();
	}
	// write a single
	public static void write(String fileName,String text)
	{
		try {
			PrintWriter out=new PrintWriter(
					new File(fileName).getAbsoluteFile()
					);
			try {
				out.print(text);

			}finally
			{
				out.close();
			}
		} catch (Exception e) {
			throw new RuntimeException(e);
		}

	}

	// read a file
	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){
					//System.out.println(item);
					 out.println(item);
				}

			} finally
			{
				out.close();
			}
		} catch (Exception e) {
			throw new RuntimeException(e);
		}

	}
	/////simple test
	public static void main(String[] args) {
		//路径根据自已的改
		String path="D:\\Users\\liangrui\\workspace\\thinking\\src\\org\\rui\\io\\util/";

		String fileText =read(path+"TextFile.java");//读取当前java文本
		//写入文件
		write(path+"newText.txt",fileText);
		//对象 写
		TextFile tf=new TextFile(path+"newText.txt");//再次读取写入的新文本
		tf.write(path+"newText2.txt");//再次写入

		//读取文本并放入TreeSet集合中
		TreeSet<String> words=new TreeSet<String>(
				new TextFile(path+"TextFile.java","\\W+")//\W词字符
				);
		//headSet 返回此 set 的部分视图,其元素严格小于  toElement。
		System.out.println(words.headSet("a"));

	}
}
/**
 * output:
[0, ArrayList, Arrays, BufferedReader, D, Exception, File,
FileReader, PrintWriter, RuntimeException, String, StringBuilder,
System, TextFile, TreeSet, Users, W]
 */
package org.rui.io.util;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * 读取二进制文件
 * @author lenovo
 *
 */
public class BinaryFile {

	public static byte[] read(File bFile) throws IOException
	{
		BufferedInputStream bis=new BufferedInputStream(
				new FileInputStream(bFile)
				);
		try {
			//产生恰当数组尺寸
			byte[] data=new byte[bis.available()];
			bis.read(data);
			return data;
		} finally
		{
			bis.close();
		}
	}

	public static byte[] read(String bF) throws IOException
	{
		//重载
		return read(new File(bF).getAbsoluteFile());// getAbsoluteFile 返回此抽象路径名的绝对路径名形式。
	}

}

java 文件读写的实用工具,布布扣,bubuko.com

时间: 2024-12-18 01:25:07

java 文件读写的实用工具的相关文章

java文件读写操作

Java IO系统里读写文件使用Reader和Writer两个抽象类,Reader中read()和close()方法都是抽象方法.Writer中 write(),flush()和close()方法为抽象方法.子类应该分别实现他们. Java IO已经为我们提供了三个方便的Reader的实现类,FileReader,InputStreamReader和BufferedReader.其中最重要的类是InputStreamReader, 它是字节转换为字符的桥梁.你可以在构造器重指定编码的方式,如果不

java文件读写操作类

借鉴了项目以前的文件写入功能,实现了对文件读写操作的封装 仅仅需要在读写方法传入路径即可(可以是绝对或相对路径) 以后使用时,可以在此基础上改进,比如: 写操作: 1,对java GUI中文本框中的内容进行捕获,放在txt文本文档中 2,对各种类型数据都以字符串的形式逐行写入 3,对全局数组的内容进行写入 读操作: 获取文件行数 对逐行字符串型数据进行类型转换,放入二维数组中 为后面算法处理提供入口,但是要小心的是:不可以将行数用全局变量做计数器,否则每次读入是全局变量累加出错,应重新开始读取

java文件读写的两种方式

今天搞了下java文件的读写,自己也总结了一下,但是不全,只有两种方式,先直接看代码: public static void main(String[] args) throws IOException { io(); buffer(); } /** * 以流的形式读写 可以使用任何文件 特别是二进制文件 * * @author hh * @date 2014-12-11 * @throws IOException */ public static void io() throws IOExce

JAVA文件读写输入输出流关闭问题、JAVA垃圾回收

切记: 读写文件一定要及时关闭输入输出流 项目中,用到将rtf文档上传后修改一个更新标记为0未更新,另外一个程序将文档上传到LED屏上面,LED程序检测到更新标记为未更新时将状态投到LED上面,并将状态更新为1已更新. 现象:上传文件时使用输入输出流,上传成功后LED屏不显示更新文档,为空. 部分代码: public void save(){ upload(); save(XXXXX); } public void upload() throws Exception{ //以服务器的文件保存地址

java文件读写类及其用法介绍

IO类图如下: 1. File类 ①File类封装了对用户机器的文件系统进行操作的功能.例如,可以用File类获得文件上次修改的时间移动,或者对文件进行删除.重命名. File类的主要方法有:getName(),getCanonicalFile(),lastModified(),isDerector(),isFile(),getPath()等: ②File类与FileInputStream类的区别: 流类关注的是文件内容,而File类关注的是文件在磁盘上的存储. File不属于文件流,只能代表一

Java文件编码自动转换工具类

本篇随笔主要介绍了一个用java语言写的将一个文件编码转换为另一个编码并不改变文件内容的工具类: 通过读取源文件内容,用URLEncoding重新编码解码的方式实现. 1 public class ChangeFileEncoding { 2 public static int fileCount = 0; 3 public static String sourceFileRoot = "替换为要转换的源文件或源目录"; // 将要转换文件所在的根目录 4 public static

java文件读写

读写文件: import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException; public class DXshuju { public static void main(String[] args) {        String str ="chinayang  朋

java 文件读写,查找文件部署的位置

PathUtil.getClasspathFile("test.txt")  //这样就可以查找 import java.io.File;import java.io.IOException;import java.io.InputStream;import java.net.URL; public enum PathUtil {    INSTANCE;    private static String webRootPath; /**     * 指定类的编译路径     * @p

Java文件读写操作指定编码方式防乱码

读文件:BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而提供字符.数组和行的高效读取. 可以指定缓冲区的大小,或者可使用默认的大小.大多数情况下,默认值就足够大了. 通常,Reader 所作的每个读取请求都会导致对基础字符或字节流进行相应的读取请求.因此,建议用 BufferedReader 包装所有其 read() 操作可能开销很高的 Reader(如 FileReader 和 InputStreamReader).例如, BufferedReader in   = n