以下一个拆分txt的Util类
import java.io.Fileimport java.io.FileInputStream
import java.io.FileNotFoundException
import java.io.FileOutputStream
import java.io.IOException
import java.io.InputStream
import java.io.OutputStream
public class FileCutter {
/**
*
*sourceFile:源文件的路径
*targetDirectory:保存文件的目录(例:'C:\\')
*prefix:是分割后文件的前缀(例:'2015-09-09')
*size:是分隔后单一文件的大小单位是2kb的倍数,size传10,分割后单一文件就是20K。传100,文件就是2M一个。
*
**/
public static void cutToMoreFile(String sourceFile, String targetDirectory, String prefix, int size)
{
//加载源文件
File source = new File(sourceFile)
InputStream in = null
OutputStream out = null
int len = 0
int fileIndex = 1
//设置一次加载的大小
byte[] buffer = new byte[2048]
try
{
//把源文件读到InputStream中
in = new FileInputStream(source)
//循环
while(true)
{
//分割后的文件流
out = new FileOutputStream(targetDirectory + File.separator + prefix + fileIndex++ + ".txt")
for(int i = 0 i < size i++)
{
//如果文件读取完就退回方法。
if((len = in.read(buffer)) != -1)
{
//写入分割后的文件
out.write(buffer, 0, len)
}else
{
//执行finally内容后,退出方法
return
}
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace()
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}finally
{
try {
//关系流
in.close()
out.close()
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
}
}
}
以上,详细请看注释
如果这个java代码里面有多个类,每个类放到一个java文件中。如果只有一个类,那就没办法了。只能通过优化业务逻辑,来减少代码。一般只要代码格式、注释规范,长一点并不会影响可读性。倒是不好的业务逻辑会影响执行的性能。
1、按行读,每个换行符是一行2、读出行后按空格拆分字符串下面提供一个工具方法:
public static String[] split(String str, char separatorChar) {
if (str == null) {
return null
}
int length = str.length()
if (length == 0) {
return ArrayUtil.EMPTY_STRING_ARRAY
}
Listlist = new ArrayList()
int i = 0
int start = 0
boolean match = false
while (i <length) {
if (str.charAt(i) == separatorChar) {
if (match) {
list.add(str.substring(start, i))
match = false
}
start = ++i
continue
}
match = true
i++
}
if (match) {
list.add(str.substring(start, i))
}
return (String[]) list.toArray(new String[list.size()])
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)