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

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

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=0x<arr.lengthx++){

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) {

}

}

    

    }

}

可以通过Java的IO流实现txt文本的读取,然后用readline实现按行读取。具体代码如下:

package test

import java.io.BufferedReader

import java.io.File

import java.io.FileReader

import java.io.IOException

import java.util.ArrayList

import java.util.List

public class Test {

 public static double[] writeToDat(String path) {

  File file = new File(path)

  List list = new ArrayList()

  double[] nums = null

  try {

   BufferedReader bw = new BufferedReader(new FileReader(file))

   String line = null

   //因为不知道有几行数据,所以先存入list集合中

   while((line = bw.readLine()) != null){

    list.add(line)

   }

   bw.close()

  } catch (IOException e) {

   e.printStackTrace()

  }

  //确定数组长度

  nums = new double[list.size()]

  for(int i=0i<list.size()i++){

   String s = (String) list.get(i)

   nums[i] = Double.parseDouble(s)

  }

  return nums

 }

 public static void main(String[] args) {

  String path = "d:/file4.txt"

  double[] nums = writeToDat(path)

  for(int i=0i<nums.lengthi++){

   System.out.println(nums[i])

  }

 }

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11925534.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存