欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java怎么逐行读取一个文件内容,并把每行顺序打乱存入另外一个文件中

程序员文章站 2022-04-24 11:29:14
...

java读入文件,并逐行输出,先在项目中建立个 "a "文件夹,然后创建一个a.txt文件,然后编辑文件,文本编辑的编码是utf-8,然后用流逐行读取输出,然后打乱每行顺序,再存放到b.txt文件中,如下:

package fileDao;

import java.io.*;
import java.util.ArrayList;
import java.util.Collections;


public class demo {

    public static void main(String[] args){
        //获取要读取的文件
        File readFile=new File("a/a.txt");
        //获取要写入到的文件
        File outFile=new File("a/b.txt");
        //输入IO流声明
        InputStream in=null;
        InputStreamReader ir=null;
        BufferedReader br=null;

        //输出IO流说明
        OutputStream os=null;
        OutputStreamWriter osw =null;
        BufferedWriter bw=null;

        try {
            //用流读取文件
            in=new BufferedInputStream(new FileInputStream(readFile));
            os=new BufferedOutputStream(new FileOutputStream(outFile));
            //如果你文件已utf-8编码的就按这个编码来读取,不然又中文会读取到乱码
            ir=new InputStreamReader(in,"utf-8");
            osw=new OutputStreamWriter(os,"utf-8");
            //字符输入流中读取文本,这样可以一行一行读取
            br= new BufferedReader(ir);
            bw=new BufferedWriter(osw);

            String line="";
            ArrayList<String> arrayList=new ArrayList<>();

            //一行一行读取
            while((line=br.readLine())!=null){
                System.out.println(line);
                //存入到集合中,一行为一个元素
                arrayList.add(line);
            }
            System.out.println("=======================");
            //打乱集合的元素
            Collections.shuffle(arrayList);
            //遍历集合,并输出一下,跟一行一行的写入到b.txt文件中
            for (String s : arrayList) {
                System.out.println(s);
                bw.write(s);
                bw.newLine();
            }

        } catch (Exception e) {

            e.printStackTrace();
        }finally{
            //一定要关闭流,倒序关闭
            try {

                if(br!=null){
                    br.close();
                }
                if(ir!=null){
                    ir.close();
                }
                if(in!=null){
                    in.close();
                }
                if(bw!=null){
                    bw.close();
                }
                if(osw!=null){
                    osw.close();
                }
                if(os!=null){
                    os.close();
                }
            } catch (Exception e2) {

            }

        }

    }


}

相关标签: java