這篇文章給大家分享的是有關(guān)java如何給定固定長度根據(jù)字符長分割文檔的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
成都網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、成都網(wǎng)站建設(shè)、微信開發(fā)、小程序制作、集團成都定制網(wǎng)頁設(shè)計等服務(wù)項目。核心團隊均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗,服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:葡萄架等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗,同時也獲得了客戶的一致贊美!
給定固定長度(數(shù)組 aa[ ])
根據(jù)字符長(非字節(jié)長度)分割文檔
最后輸出去除空格以 ^ 拼接的文檔
第一個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);
//沒有則創(chuàng)建輸出的文件
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 = "";
// 循環(huán)要獲取的長度
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緩存區(qū)間;
StringBuffer buff = new StringBuffer();
char c;
int len = 0;
// 遍歷String的每一個Char字符,計算當前總長度
// 如果到當前Char的的字節(jié)長度大于要截取的字符總長度,則跳出循環(huán)返回截取的字符串。
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;
}
// 返回最終截取的字符結(jié)果;
// 創(chuàng)建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);
}
}
感謝各位的閱讀!關(guān)于“java如何給定固定長度根據(jù)字符長分割文檔”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
本文名稱:java如何給定固定長度根據(jù)字符長分割文檔
新聞來源:http://bm7419.com/article26/jciscg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、移動網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、網(wǎng)站維護、域名注冊、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)