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 文件读写的有用工具的更多相关文章

  1. java文件读写的两种方式

    今天搞了下java文件的读写,自己也总结了一下,但是不全,只有两种方式,先直接看代码: public static void main(String[] args) throws IOExceptio ...

  2. java文件读写操作

    Java IO系统里读写文件使用Reader和Writer两个抽象类,Reader中read()和close()方法都是抽象方法.Writer中 write(),flush()和close()方法为抽 ...

  3. java文件读写操作类

    借鉴了项目以前的文件写入功能,实现了对文件读写操作的封装 仅仅需要在读写方法传入路径即可(可以是绝对或相对路径) 以后使用时,可以在此基础上改进,比如: 写操作: 1,对java GUI中文本框中的内 ...

  4. java文件读写工具类

    依赖jar:commons-io.jar 1.写文件 // by FileUtilsList<String> lines = FileUtils.readLines(file, " ...

  5. java 文件读写工具 FileUtil

    代码如下: package com.wiscom.utils; import java.io.BufferedReader; import java.io.File; import java.io.F ...

  6. Java文件编码自动转换工具类(只改变编码,不会改变文件内容)

    本篇随笔主要介绍了一个用java语言写的将一个文件编码转换为另一个编码并不改变文件内容的工具类: 通过读取源文件内容,用URLEncoding重新编码解码的方式实现. public class Cha ...

  7. Java 文件读写操作

    1[1]按字节读写,一次只读取一个字节,效率比较低 package bk1; import java.io.File; import java.io.FileInputStream; import j ...

  8. 【转载】Java文件编码自动转换工具类

    本篇随笔主要介绍了一个用java语言写的将一个文件编码转换为另一个编码并不改变文件内容的工具类: 通过读取源文件内容,用URLEncoding重新编码解码的方式实现. 1 public class C ...

  9. Java文件读写分析

    本文内容:IO流操作文件的细节分析:分析各种操作文件的方式. 读写一个文件 从一个示例开始分析,如何操作文件: /** * 向一个文件中写入数据 * @throws IOException */ pr ...

随机推荐

  1. PC上测试移动端网站和模拟手机浏览器

    一.Chrome*浏览器 chrome模拟手机总共有四种方法,原理都一样,通过伪装User-Agent,将浏览器模拟成Android设备.以下标星的为推荐方法. 1.新建Chrome快捷方式 右击桌面 ...

  2. Mysql 使用命令及 sql 语句示例

    Mysql 是数据库开发使用的主要平台之一.sql 的学习掌握与使用是数据库开发的基础,此处展示详细sql 语句的写法,及各种功能下的 sql 语句. 在此处有 sql 语句使用示例:在这里 此处插入 ...

  3. Python第三方库之openpyxl(4)

    Python第三方库之openpyxl(4) 2D柱状图 在柱状图中,值被绘制成水平条或竖列. 垂直.水平和堆叠柱状图. 注意:以下设置影响不同的图表类型 1.在垂直和水平条形图之间切换,分别设置为c ...

  4. 【转】SQL索引一步到位

    原文:http://www.cnblogs.com/AK2012/archive/2013/01/04/2844283.html SQL索引一步到位(此文章为“数据库性能优化二:数据库表优化”附属文章 ...

  5. DDLog-不同颜色打印信息

    (一)下载安装 1.安装插件 XcodeColors Github 链接:https://github.com/robbiehanson/XcodeColors 打开XcodeColors项目,编译即 ...

  6. SPOJ 375 Query on a tree【树链剖分】

    题目大意:给你一棵树,有两个操作1.修改一条边的值,2.询问从x到y路径上边的最大值 思路:如果树退化成一条链的话线段树就很明显了,然后这题就是套了个树连剖分,调了很久终于调出来第一个模板了 #inc ...

  7. 625. Minimum Factorization

    Problem statement Given a positive integer a, find the smallest positive integer b whose multiplicat ...

  8. response.sendRedirect()使用注意事项

    用response.sendRedirect做转向其实是向浏览器发送一个特殊的Header,然后由浏览器来做转向,转到指定的页面,所以用sendRedirect时,浏览器的地址栏上可以看到地址的变化. ...

  9. servlet分析

    Servlet生命周期分为三个阶段: 1,初始化阶段  调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法 Servlet初始化阶段: 在 ...

  10. oracle禁止插入、延迟插入方法

    DATE_ADD(DATE_ADD(curdate(),INTERVAL +6 HOUR),INTERVAL +6 DAY) mysql取当前日期后6天,截止到6点钟的方法 --直接报错 CREATE ...