把一个txt通过特殊的标识分割成多个txt

功能介绍:

从本地读取一个txt文件,然后根据命名规范保存新的txt文件,我这里是一个测试类,命名规范也只是粗略的+1处理.主要是思想是把txt按行读,然后存入list集合,然后list集合转换为String字符串,这里用的是直接list.toString();这样的转换后的list就会多生成"[","]"和","然后可以用""把它们进行替换,这里用的方法都比较简单有不对的地方请多多指正,网上有很多list转String的方法,个人觉得太麻烦,但是比较合乎情理,我这样处理比较不合乎情理.

在我们读的txt中有特殊标志这个可以自己设置,这样就可以根据规则取出我们特需的字符,然后并存入一个新的txt文档.

这个test类适合的需求是:从一个txt中截取Start与Start之间的字符并存入一个新的txt.(一个txt拆分多个txt).

写到后来因为思路问题,变量定义的较为懒散,多多见谅.下边是代码

package com.brainsoon.Epub.test;

import java.io.*;
import java.util.ArrayList;
import java.util.List;
/**
 * @author:    作者:王海岐
 * @version:   版本:1.0
 * @date:      创建时间:2016年8月12日 上午8:51:48
 */
public class test12 {
	private static List<String> list = new ArrayList<String>();
	private String temp;

	public static void main(String[] args) {
		test12 fileTest = new test12();
		fileTest.readFile("c:/users/82621/Desktop/s/1.txt");
		String txt = fileTest.list.toString();
		txt = txt.replace("[", "");
		txt = txt.replace(",", "");
		txt = txt.replace("]", "");
		txt = txt.replace(" ", "");
		
//		int loc1 = txt.indexOf("Start");
//		int loc2 = txt.indexOf("tart");
//		String result = txt.substring(loc1, loc2);
//		System.out.println(result);
//		String[] s = txt.split("\\Start");
//		for (int i = 0; i < s.length; i++) {
//			System.out.println(s[i]);
//		}
		fileTest.printFile("c:/users/82621/Desktop/s/2.txt" ,txt);
		
	}

	public void readFile(String fileName) {
		try {
//			FileReader fileReader = new FileReader(new File(fileName));
//			BufferedReader bufferedReader = new BufferedReader(fileReader);
			BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(fileName),"gbk"));
			while ((temp = br.readLine()) != null) {
				list.add(temp);
			}
			br.close();


		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void printFile(String fileName,String txt) {

		try {
			String[] s = txt.split("\\Start");
			for (int i = 0; i < s.length-1; i++) {
				System.out.println(s[i]);
				File file = new File(fileName);
				String sssssssss ="";
				String ss ="";
				
					ss = file.getName();
//					ss.substring(ss.indexOf("."),ss.indexOf(""))
					String str = fileName.substring(fileName.lastIndexOf(".") + 1);
					String d =ss.substring(0, ss.lastIndexOf("."));
					int ssss = Integer.parseInt(d);
					ssss = ssss +i;
					String sssssss = ssss+"";
					System.out.println(str);
					System.out.println(d);
					System.out.println(sssssss);
					String sss = file.getParent();
					sssssssss = sss + File.separator + sssssss+".txt";
				FileWriter fileWriter = new FileWriter(new File(sssssssss));
				BufferedWriter bufWriter = new BufferedWriter(fileWriter);
				bufWriter.write(s[i+1]);
				bufWriter.close();
				fileWriter.close();
	
			}
		
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}
谢谢观看!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值