java如何给定固定长度根据字符长分割文档

这篇文章给大家分享的是有关java如何给定固定长度根据字符长分割文档的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

成都网站建设哪家好,找创新互联!专注于网页设计、成都网站建设、微信开发、小程序制作、集团成都定制网页设计等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:葡萄架等众多领域,积累了大量丰富的经验,同时也获得了客户的一致赞美!

给定固定长度(数组 aa[ ])

根据字符长(非字节长度)分割文档

最后输出去除空格以 ^ 拼接的文档

第一个class

package work;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileWriter;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.nio.charset.Charset;

public class T1 {

// inputFilePath 输入文件路径

public static void parseCunegFile(String inputFilePath,String outputFilePath, int[] aa) throws Exception {

BufferedWriter bw = null;

BufferedReader br = null;

int[] bb = new int[aa.length];

bb[0] = 0;

for (int i = 1; i < bb.length; i++) {

bb[i] = bb[i - 1] + aa[i - 1]+1;

aa[i]=aa[i]-1;

}

try {

//读取输入的文件

File ifile = new File(inputFilePath);

InputStream is = new FileInputStream(ifile);

//没有则创建输出的文件

File ofile = new File(outputFilePath);

//FileOutputStream out=new FileOutputStream(ofile);

if(!ofile.exists()){

ofile.createNewFile();

}

bw=new BufferedWriter(new FileWriter(ofile,true));

br = new BufferedReader(new InputStreamReader(is, Charset.forName("gbk")));

String line = "";

// 读取每一行

while ((line = br.readLine()) != null) {

String str = "";

// 循环要获取的长度

for (int i = 0; i < aa.length; i++) {

str = str.trim()+T2.substringByte(line, bb[i], aa[i]).trim()+"^";

}郑州人流多少钱 http://www.hnmt120.com/

str = str.substring(0,str.length()-1);

bw.write(str+"\n");

}

} catch (IOException e) {

e.printStackTrace();

}finally {

br.close();

bw.close();

}

}

}

第二个class

package work;

public class T2 {

// orignal:需要截取的每一行 start:从第几位开始 count:截取几位

public static String substringByte(String orignal, int start, int count) throws Exception {

// 目标char Pull buff缓存区间;

StringBuffer buff = new StringBuffer();

char c;

int len = 0;

// 遍历String的每一个Char字符,计算当前总长度

// 如果到当前Char的的字节长度大于要截取的字符总长度,则跳出循环返回截取的字符串。

for (int i = 0; i < orignal.toCharArray().length; i++) {

c = orignal.charAt(i);

len += String.valueOf(c).getBytes("GBK").length;

if (len >= start && len <= start + count) {

buff.append(c);

}

if (len > start + count)

break;

}

// 返回最终截取的字符结果;

// 创建String对象,传入目标char Buff对象

return new String(buff);

}

}

测试

package work;

public class Test {

public static void main(String[] args) throws Exception {

int[] aa = {32,20,2,8,5,100,15,1,1,1,1,40,1};

T1.parseCunegFile("C:\\Users\\Administrator\\Desktop\\1.txt","C:\\Users\\Administrator\\Desktop\\2.txt", aa);

}

}

感谢各位的阅读!关于“java如何给定固定长度根据字符长分割文档”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


当前名称:java如何给定固定长度根据字符长分割文档
当前网址:http://azwzsj.com/article/jciscg.html