java切割文本内容

这基本上是一个工具类.
/*
* (#)TestFileOperate.java 1.0 2008-1-16 2008-1-16
*/

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

import junit.framework.TestCase;
import junit.framework.TestResult;

/**
* 文本文件内容切割,分割
* @author QiaoDuanni
* @version 1.0, 2008-1-16 2008-1-16
* @since JDK5
*/
public class TestFileOperate extends TestCase {

//private static final Logger logger = Logger
// .getLogger(TestFileOperate.class);

/**
* 文本文件读取
*
* @param inFilepath
* 要读取的文件路径及名称
* @param inEncoding
* 要读取的文件的编码方式
* @param endLineSeparator
* 读取一行后要在行尾追加的
* @return 文件内容
* @throws IOException
*/
public String fileReader(String inFilepath, String inEncoding,
String endLineSeparator) throws IOException {
BufferedReader bin = null;
if (endLineSeparator == null)
endLineSeparator = "";
System.out.println("inFilepath:" + inFilepath + "\ninEncoding:"
+ inEncoding + "\n行尾追加后缀:" + endLineSeparator);
// 文件字符集
String enc = System.getProperty("file.encoding");
System.out.println("文件默认字符集:" + enc);
FileInputStream inputFile = new FileInputStream(inFilepath);
InputStreamReader in = new InputStreamReader(inputFile, inEncoding);
bin = new BufferedReader(in);
StringBuffer result = new StringBuffer();
String temp = "";
while ((temp = bin.readLine()) != null) {
result.append(temp).append(endLineSeparator);
}
bin.close();
return result.toString();
}

/**
* 文件写入
*
* @param outFilepath
* 要写入的文件路径及名称
* @param outEncoding
* 输出的文件编码方式
* @param fileContent
* 输入的内容
* @param flushSize
* 当输入多大时刷新一次缓冲区.默认为fileContent的大小
* @return
* @throws IOException
*/
public String fileWriter(String outFilepath, String outEncoding,
String fileContent, int flushSize) throws IOException {
if (!new File(outFilepath).getParentFile().isDirectory()) {
new File(outFilepath).getParentFile().mkdirs();
new File(outFilepath).createNewFile();
System.out.println("文件目录路径及文件不存在,创建!" + outFilepath);
}
System.out.println("outFilepath:" + outFilepath + "\noutEncoding:"
+ outEncoding);
BufferedWriter bout = null;
System.out.println("flushSize大小(改变前):" + flushSize);
if (flushSize > fileContent.length() || flushSize == 0)
flushSize = fileContent.length();

FileOutputStream outputFile = new FileOutputStream(outFilepath);
OutputStreamWriter out = new OutputStreamWriter(outputFile, outEncoding);
bout = new BufferedWriter(out);

int j = fileContent.length() / flushSize;
String temp;
System.out
.println("flushSize大小:" + flushSize + "\nfileContent.length():"
+ fileContent.length() + "\nj:" + j);
for (int i = 0; i < j; i++) {
temp = fileContent.substring(flushSize * i, flushSize * (i + 1));
bout.write(temp);
bout.flush();
System.out.print("[刷新缓冲" + i + "] ");
}
bout.close();
return null;
}

/**
* 根据给定的正则表达式的匹配来拆分此字符串。 该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split方法。
* 因此,结果数组中不包括结尾空字符串。
*
* 例如,字符串 "boo:and:foo" 产生带有下面这些表达式的结果:
*
* Regex 结果 : { "boo", "and", "foo" } o { "b", "", ":and:f" }
*
* @param source
* 要拆分的字符串
* @param regex
* 定界正则表达式
* @return 字符串数组,根据给定正则表达式的匹配来拆分此字符串,从而生成此数组。
*/
public String[] splitString(String source, String regex) {
return source.split(regex);
}

/**
* @see junit.framework.TestCase#run()
*/
@Override
public TestResult run() {
return super.run();
}

/**
* @see junit.framework.TestCase#tearDown()
*/
@Override
protected void tearDown() throws Exception {
super.tearDown();
}

/**
* @param args
*/
public static void main(String[] args) {
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值