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如何给定固定长度根据字符长分割文档-创新互联
URL链接:http://scyanting.com/article/cogsid.html