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. 算法学习记录-图——最小路径之Floyd算法

    floyd算法: 解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题,同时也被用于计算有向图的传递闭包. 设为从到的只以集合中的节点为中间节点的最短路径的长度. 若最短路径经过 ...

  2. angularJs 中ui-router 路由向controller传递数据

    页面上 : ui-sref="home.dataAnalysis({role:'thirdpart:tokenverify',menuType:'a'})" 路由设置 .state ...

  3. CodeIgniter实现读写分离

    http://pengbotao.cn/codeigniter-mysql-proxy.html

  4. RN import ** from ** 用法

    1.import React, { Component } from 'react': 导入‘react’文件里export的一个默认的组件,将其命名为React以及Component这个非默认组件 ...

  5. Sort a linked list in O(n log n) time using constant space complexity.

    因为题目要求复杂度为O(nlogn),故可以考虑归并排序的思想. 归并排序的一般步骤为: 1)将待排序数组(链表)取中点并一分为二: 2)递归地对左半部分进行归并排序: 3)递归地对右半部分进行归并排 ...

  6. Centos6.5搭建git远程仓库

    远程仓库搭建 step1:安装git ```yum -y install git``` step2:创建用户git,用来运行git服务 useradd git passwd git //修改git用户 ...

  7. Codeforces Round #362 (Div. 2)

    闲来无事一套CF啊,我觉得这几个题还是有套路的,但是很明显,这个题并不难 A. Pineapple Incident time limit per test 1 second memory limit ...

  8. .NET重构(四):窗体继承+模板方法,完美实现组合查询

    导读:在机房重构中,有好些个查询都是大同小异,最为显著的就是组合查询了.怎样给自己省事儿,相同的东西能不能重复利用,就成了一个现实的问题.第一遍做机房的时候,使用的更多的是:复制+粘贴.学习了设计模式 ...

  9. SG博弈函数模板

    下面这两个模版应该就比较严密了,这个里边的f[]是从零开始的. 转载出处:转自:http://blog.csdn.net/primoblog/article/details/13376057 1.sg ...

  10. Codeforces Round #352 (Div. 1) B. Robin Hood

    B. Robin Hood 讲道理:这种题我是绝对不去(敢)碰的.比赛时被这个题坑了一把,对于我这种不A不罢休的人来说就算看题解也要得到一个Accepted. 这题网上有很多题解,我自己是很难做出来的 ...