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程序逐行读取文件信息
下一篇: java 7 nio复制文件代码