java 按行读写文件

因为经常会在写小程序中用到java 的 按行读写文件,所以在这就把模板站出来。

package com;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

public class Main {

	private static ArrayList<String> list = null;
	//获取对应操作系统的换行符
	private final static String EOL = System.getProperty("line.separator");
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		//模拟copy操作
		String file_name = "";
		readForLine(file_name);
		writeForLine(file_name + ".bak");

	}

	//按行读取文件file_name,并把每一行的数据存储在list中
	public static void readForLine(String file_name)
	{
		File file = new File(file_name);
		BufferedReader reader = null;

		try {
			reader = new BufferedReader(new FileReader(file));
			String line = null;
			//按行读,并把每次读取的结果保存在line字符串中
			while ( (line = reader.readLine()) != null )
			{
				list.add(line);
				System.out.println(line);
			}
			//关闭流
			reader.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally
		{
			//当由于异常情况,上面关闭流程序没有执行时
			if ( reader != null )
			{
				try
				{
					reader.close();
				}catch(IOException e)
				{
					e.printStackTrace();
				}
			}
		}
	}

	//按行写文件,将list中的字符串,按行写入file_name文件中
	public static void writeForLine(String file_name)
	{
		File file = new File(file_name);
		BufferedWriter writer = null;

		try {
			writer = new BufferedWriter(new FileWriter(file));
			for ( String elem: list )
			{
				writer.write(elem + EOL);//按行写文件,后面追加行分隔符EOL
			}
			//关闭流
			writer.close();
		} catch (IOException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally
		{
			if ( writer != null )
			{
				try {
					writer.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}
}
时间: 2024-10-01 19:02:59

java 按行读写文件的相关文章

java按行读写文件和输入处理

一.我们来看python的很简单: 1.读文件: 1 with open("/path/file","r") as fr: 2 for line in fr.readlines(): 3 do_somethings(line) 2.写文件: 1 with open("/path/file","w/a") as fr: 2 fr.write("ssssssss") 二.上文知识一个引子,不是重点,还是来学习j

Java 字符流读写文件

据说,java读写文件要写很多,贼麻烦,不像c艹,几行代码就搞定.只能抄抄模板拿来用了. 输入输出流分字节流和字符流.先看看字符流的操作,字节转化为字符也可读写. 一.写入文件 1.FileWriter类: FileWriter fw=new FileWriter("hello");//在workspace工作空间里创建文件,文件名为hello FileWriter fw=new FileWriter("E:\\hello");//在E盘创建文件,文件名为hello

java FileReader/FileWriter读写文件

java FileReader/FileWriter读写字母和数字没问题,但读写汉字就乱码.记录下,后面找到解决方法再补上. public static void main(String[] args) { FileReader fr = null; FileWriter fw = null; try { int a = 0; fr = new FileReader("c:/a.txt");//读取目标 fw = new FileWriter("c:/b.txt")

Java IO如何读写文件

Java把这些不同来源和目标的数据都统一抽象为数据流:Java语言的输入输出功能是十分强大而灵活的:在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流. 这里介绍几种读写文件的方式: 一.InputStream.OutputStream(字节流) //读取文件(字节流) InputStream in = new FileInputStream("d:\\1.txt"); //写入相应的文件 Out

Linux平台下利用系统接口函数按照行读写文件

要求:支持大文件(1M)一次性读入 源代码如下: #include<stdio.h> #include<fcntl.h> #include<stdlib.h> #include<string.h> #define rwmode 2 //清屏命令函数 void clear() { char clscode[] = {0x1B, 0x5B, 0x48, 0x1B, 0x5B, 0x4A}; printf("%s",clscode); } //

Java IO流读写文件的几个注意点

平时写IO相关代码机会挺少的,但却都知道使用BufferedXXXX来读写效率高,没想到里面还有这么多陷阱,这两天突然被其中一个陷阱折腾一下:读一个文件,然后写到另外一个文件,前后两个文件居然不一样? 解决这个问题之后,总结了几个注意点. 注意点一:Reader/Writer读写二进制文件是有问题的 : public void copyFile1() { File srcFile = new File("E://atest//atest.txt"); File dstFile = ne

191108、Java IO流读写文件的几个注意点

平时写IO相关代码机会挺少的,但却都知道使用BufferedXXXX来读写效率高,没想到里面还有这么多陷阱,这两天突然被其中一个陷阱折腾一下:读一个文件,然后写到另外一个文件,前后两个文件居然不一样? 解决这个问题之后,总结了几个注意点. 注意点一:Reader/Writer读写二进制文件是有问题的 : 上面代码使用BufferedReader一行一行地读取一个文件,然后使用BufferedWriter把读取到的数据写到另外一个文件中.如果文件是ASCCII形式的,则内容还是能够正确读取的.但如

java按行读取文件

/** * 按流读取文件 * @param path * @return * @throws FileNotFoundException */ public static BufferedReader openFile(final String path) throws FileNotFoundException { FileInputStream in = new FileInputStream(new File(path)); BufferedReader reader = new Buff

java 文件按行读写

1 import java.io.BufferedReader; 2 import java.io.BufferedWriter; 3 import java.io.File; 4 import java.io.FileReader; 5 import java.io.FileWriter; 6 import java.io.IOException; 7 8 public class Demo001 { 9 10 public static void writeFile(String strSr