java 文件读写的有用工具
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 文件读写的有用工具的更多相关文章
- java文件读写的两种方式
今天搞了下java文件的读写,自己也总结了一下,但是不全,只有两种方式,先直接看代码: public static void main(String[] args) throws IOExceptio ...
- java文件读写操作
Java IO系统里读写文件使用Reader和Writer两个抽象类,Reader中read()和close()方法都是抽象方法.Writer中 write(),flush()和close()方法为抽 ...
- java文件读写操作类
借鉴了项目以前的文件写入功能,实现了对文件读写操作的封装 仅仅需要在读写方法传入路径即可(可以是绝对或相对路径) 以后使用时,可以在此基础上改进,比如: 写操作: 1,对java GUI中文本框中的内 ...
- java文件读写工具类
依赖jar:commons-io.jar 1.写文件 // by FileUtilsList<String> lines = FileUtils.readLines(file, " ...
- java 文件读写工具 FileUtil
代码如下: package com.wiscom.utils; import java.io.BufferedReader; import java.io.File; import java.io.F ...
- Java文件编码自动转换工具类(只改变编码,不会改变文件内容)
本篇随笔主要介绍了一个用java语言写的将一个文件编码转换为另一个编码并不改变文件内容的工具类: 通过读取源文件内容,用URLEncoding重新编码解码的方式实现. public class Cha ...
- Java 文件读写操作
1[1]按字节读写,一次只读取一个字节,效率比较低 package bk1; import java.io.File; import java.io.FileInputStream; import j ...
- 【转载】Java文件编码自动转换工具类
本篇随笔主要介绍了一个用java语言写的将一个文件编码转换为另一个编码并不改变文件内容的工具类: 通过读取源文件内容,用URLEncoding重新编码解码的方式实现. 1 public class C ...
- Java文件读写分析
本文内容:IO流操作文件的细节分析:分析各种操作文件的方式. 读写一个文件 从一个示例开始分析,如何操作文件: /** * 向一个文件中写入数据 * @throws IOException */ pr ...
随机推荐
- linux 环境下bash脚本中找不到命令
mr.sh: line 1: HADOOP_CMD: command not found mr.sh: line 4: INPUT_FILE_PATH: command not found mr.sh ...
- [android开发篇][android studio 和elipse都需要的流程 android sdk的安装
第三步.下载并安装AndroidSDK 前面两步,我们已经配置了JDK变量环境,并安装好了Eclipse,通过这两步之后Java的开发环境就准备好了,如果我们只是开发普通的JAVA应用程序的话,那么到 ...
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛
02Train Seats Reservation 问答 只看题面 33.87% 1000ms 131072K You are given a list of train stations, say ...
- 【Luogu】P2680运输计划(树上差分+二分)
题目链接 总体思路……怎么说呢……是个暴力吧…… 首先用倍增预处理出每条路径的长度. 然后按长度把路径排序. 然后二分答案.对于当前答案mid检验,怎么检验呢? 首先差分把所有长度比mid大的链上除了 ...
- 【Luogu】P3708Koishi的数字游戏(数论)
题目链接 考虑f(i)=i%1+i%2+i%3+.....+i%n f(i+1)=(i+1)%1+(i+1)%2+......+(i+1)%n 其中不是i+1的因数的部分在f(i+1)的地方都加了1. ...
- 刷题总结——愤怒的小鸟(NOIPDAY2T3)
题目: 题目背景 NOIP2016 提高组 Day2 T3 题目描述 Kiana 最近沉迷于一款神奇的游戏无法自拔.简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于 (0,0) 处,每次 Ki ...
- out.print和out.write
这是一个JSP页面: <%@ page language="java" import="java.util.*" %> <%@ page p ...
- ftp链接、上传、下载、断开
开发环境:Jdk 1.8 引入第三方库:commons-net-2.2.jar(针对第一种方法) 一.基于第三方库FtpClient的FTP服务器数据传输 由于是基于第三方库,所以这里基本上没有太多要 ...
- 【CF659F】Polycarp and Hay(并查集,bfs)
题意: 构造一个矩阵,使得: 矩阵所有格子中数字都小于等于原矩阵,并且至少有一个元素和原矩阵相等, 构造的矩阵除了0以外的数字必须联通并且相等,矩阵中元素之和为K. n,m<=1e3,1< ...
- RRAS
远程访问控制是Windows NT.Win200x Server提供的一种远程服务,它允许用户从远端通过拨号连接连接到一个本地的计算机网络,一旦建立了连接,就相当于处在了本地的LAN中,从而可以使用各 ...