java 按行读取一个文件,存在字符串数组里,一个元素对应一行,再将这个数组按行输出到一个新的文件里

 我来答
308xiaobao
高粉答主

2017-07-07 · 每个回答都超有意思的
知道大有可为答主
回答量:2.6万
采纳率:95%
帮助的人:2740万
展开全部

java 按行读取一个文件,存在字符串数组里,一个元素对应一行,再将这个数组按行输出到一个新的文件里,代码如下:

package foo;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;

import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        File readFile=new File("D://home/a.txt");
        InputStream in=null;
        InputStreamReader ir=null;
        BufferedReader br=null;
        
        OutputStream out=null;
        OutputStreamWriter ow=null;
        BufferedWriter bw=null;
        try {
         //用流读取文件
in=new BufferedInputStream(new FileInputStream(readFile));
//如果你文件已utf-8编码的就按这个编码来读取,不然又中文会读取到乱码
ir=new InputStreamReader(in,"utf-8");
br= new BufferedReader(ir);
String line="";
//定义集合一行一行存放
List<String> list=new ArrayList<String>();
//一行一行读取
while((line=br.readLine())!=null){
System.out.println(line);
list.add(line);
}
//将集合转换成数组
String[] arr=list.toArray(new String[list.size()]);

//写入新文件
File newFile=new File("D://home/b.txt");
if(!newFile.exists()){
newFile.createNewFile();
}

out=new BufferedOutputStream(new FileOutputStream(newFile));
//这里也可以给定编码写入新文件
ow=new OutputStreamWriter(out,"gb2312");
bw=new BufferedWriter(ow);
//遍历数组吧字符串写入新文件中
for(int x=0;x<arr.length;x++){
bw.write(arr[x]);
if(x!=arr.length-1){
  //换行
  bw.newLine();
}

}
//刷新该流的缓冲,这样才真正写入完整到新文件中
bw.flush();
} catch (Exception e) {

e.printStackTrace();
}finally{
//一定要关闭流,倒序关闭
try {
if(bw!=null){
bw.close();
}
if(ow!=null){
ow.close();
}
if(out!=null){
out.close();
}
if(br!=null){
br.close();
}
if(ir!=null){
ir.close();
}
if(in!=null){
in.close();
}
} catch (Exception e2) {

}

}
    
    }
}
雪飞潇潇
2015-11-13 · TA获得超过6275个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:867万
展开全部
import java.io.*;
import java.util.ArrayList;

public class ReadAndOut {
static String[] ary;
static final String READ_PATH="c:\\test.txt";
static final String OUT_PATH="c:\\test2.txt";
public static void main(String[] args) throws Exception {
//首先读取文件,
ArrayList<String> list = new ArrayList<String>();
File file = new File(READ_PATH);
BufferedReader br = new BufferedReader(new FileReader(file));
String temp;
while((temp=br.readLine())!=null){
list.add(temp);
}
br.close();
//然后存到数组中
ary = new String[list.size()];//从集合存到数组中
for (int i = 0; i < list.size(); i++) {
ary[i] = list.get(i);
}

//最后把数组的元素,输出出去
BufferedWriter bw = new BufferedWriter(new FileWriter(OUT_PATH));
for (int i = 0; i < ary.length; i++) {
bw.write(ary[i]);
bw.newLine();
}
bw.close();
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式