java 按行读取一个文件,存在字符串数组里,一个元素对应一行,再将这个数组按行输出到一个新的文件里,代码如下:
package fooimport 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 testimport 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])
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)