zoukankan      html  css  js  c++  java
  • 截取 还没有读的txt章节 生成新的文件

    package file;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.io.PrintWriter;
    import java.util.ArrayList;
    import java.util.List;
    
    public class ReadTxt {
    
        public static void main(String[] args) throws Exception {
            getDesired();
        }
        
        /**
         * 取出想要的文件
         * @date 2019年4月1日 上午11:26:36 
         * @throws Exception
         */
        public static void getDesired() throws Exception {// 输入文件路径
        
            List<String> temp = new ArrayList<>();
            //输入文件
            File f = new File("D:\a\b\in.txt");
            InputStreamReader reader = new InputStreamReader(new FileInputStream(f),"GBK");
            BufferedReader br = new BufferedReader(reader);
            String str=null;
            
            //下面按行读。我实现的其实就是变相的分行打印,如果有更好的方法请大家指教
            //输出文件
            OutputStreamWriter os = new OutputStreamWriter(new FileOutputStream("D:\a\b\out.txt"),"GBK");
            BufferedWriter bw = new BufferedWriter(os);
            PrintWriter out = new PrintWriter(bw);
            //定义开始写入新文件标记
            boolean flag = false;
    //        从  包含文字 :第一三四三章 展现力量(第四更!) 的行开始复制写入到新文件中
            String matchValue = "第一三四三章 展现力量";
            while((str=br.readLine())!=null){
                if (!flag) {
                    if (str.contains(matchValue)) {
                        flag = true;
                        System.out.println(str);
                    }
                }
                if (flag) {
                    //符合标记,逐行写入到新文件
                    out.println(str);
                }
            }
            
            br.close();
            reader.close();
            
            bw.close();
            os.close();
            out.close();
        }
            
    }
  • 相关阅读:
    开发中遇到的问题点
    ThreadLocal
    Java多线程10:join()方法
    Java多线程9:中断机制
    Java多线程8:wait()和notify()/notifyAll()
    Java多线程7:死锁
    Java多线程0:核心理论
    MySQL中and和or的优先级的问题
    Java多线程6:Synchronized锁代码块(this和任意对象)
    shiro英语
  • 原文地址:https://www.cnblogs.com/libin6505/p/10635418.html
Copyright © 2011-2022 走看看