根据指定字符截取字符串并分行写入文件

package cn.lesile.shell;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TranFiles {
    public static void main(String args[]) {
        String files = readByBufferedReader("E:/DFEG12121L90908908.xml");
        writeByBufferedReader(files, "D:/DFEG12121L90908908.xml");
    }

    // 读取指定目录下的文件
    public static String readByBufferedReader(String fileName) {
        String s = "";
        try {
            File file = new File(fileName);
            // 读取文件,并且以utf-8的形式写出去
            BufferedReader bufread;
            String read;

            bufread = new BufferedReader(new FileReader(file));
            // 将文件的内容按行读取出来
            while ((read = bufread.readLine()) != null) {
                s = s + read;
            }
            bufread.close();
        } catch (FileNotFoundException ex) {
            ex.printStackTrace();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        // 去除字符串s中的空格
        Pattern p = Pattern.compile("\\s*|\n|\r");
        Matcher m = p.matcher(s);
        String string = m.replaceAll("");
        String context = "";
        // 正则表达式
        String rgex = "<EaHouses>(.*?)</EaHouses>";
        Pattern pattern = Pattern.compile(rgex);// 匹配的模式
        Matcher mt = pattern.matcher(string);
        List<String> list = new ArrayList<String>();
        while (mt.find()) {
            int i = 1;
            list.add(mt.group(i));
            context = context = list.get(i - 1);
            i++;
        }
        return context;
    }

    // 将文件写到指定目录下
    public static void writeByBufferedReader(String files, String path) {
        try {
            String content =files;
            File file = new File(path);
            // if file doesnt exists, then create it
            if (file.exists()) {
                file.delete();
            }
            PrintWriter pr=new PrintWriter(path);
            String[] ss = files.split("</EaHouseInfo>");
            for(String s:ss) {
                pr.write(s+"</EaHouseInfo>"+"\r\n");
            }
             pr.close();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
//        try {
//            String content =files;
//            File file = new File(path);
//            // if file doesnt exists, then create it
//            if (file.exists()) {
//                file.delete();
//            }
//            FileWriter fw = new FileWriter(file, true);
//            BufferedWriter bw = new BufferedWriter(fw);
//            bw.write(content);
//            bw.flush();
//            bw.close();
//
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
    }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值