现在的位置: 首页 > 综合 > 正文

java读写TXT文件的方法

2017年11月30日 ⁄ 综合 ⁄ 共 2937字 ⁄ 字号 评论关闭

java读取txt文件内容。可以作如下理解:

1、首先获得一个文件句柄。File file = new File(); file即为文件句柄。两人之间连通电话网络了。接下来可以开始打电话了。

2、通过这条线路读取甲方的信息:new FileInputStream(file) 目前这个信息已经读进来内存当中了。接下来需要解读成乙方可以理解的东西

3、既然你使用了FileInputStream()。那么对应的需要使用InputStreamReader()这个方法进行解读刚才装进来内存当中的数据

4、解读完成后要输出呀。那当然要转换成IO可以识别的数据呀。那就需要调用字节码读取的方法BufferedReader()。同时使用bufferedReader()的readline()方法读取txt文件中的每一行数据哈。

方法一:
简单的使用Scanner和PrintWriter

package com.stone.demo;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;

public class ReadAndWriteTxtByScanner {

	private static void readTxtFile(String filepath){
		try {
			Scanner in=new Scanner(new File(filepath));
			while(in.hasNext()){
				String str=in.nextLine();
				System.out.println(str);
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
	}
	
	private static void writeTxtFile(String filepath){
		try {
			@SuppressWarnings("resource")
			String relativepath=System.getProperty("user.dir")+"/src/com/stone/demo/writefile.txt";
			PrintWriter out=new PrintWriter(relativepath);
			out.write("12312");
			out.write("\n");
			out.write("12312");
			out.flush();
			out.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) {
		String filepath=System.getProperty("user.dir")+"/src/com/stone/demo/writefile.txt";
		writeTxtFile(filepath);
		System.out.println("==================");
		readTxtFile(filepath);
	}
}

方法二:使用IO流

package com.stone.demo;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

public class ReadAndWriteTxtByFile {
	/**
	 * 功能:Java读取txt文件的内容 步骤:
	 * 1:先获得文件句柄 
	 * 2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取
	 * 3:读取到输入流后,需要读取生成字节流
	 *  4:一行一行的输出。readline()。 备注:需要考虑的是异常情况
	 * @param filePath
	 */
	public static void readTxtFile(String filePath) {
		try {
			String encoding = "GBK";
			File file = new File(filePath);
			if (file.isFile() && file.exists()) { // 判断文件是否存在
				InputStreamReader read = new InputStreamReader(new FileInputStream(file), encoding);// 考虑到编码格式
				BufferedReader bufferedReader = new BufferedReader(read);
				String lineTxt = null;
				while ((lineTxt = bufferedReader.readLine()) != null) {
					System.out.println(lineTxt);
				}
				read.close();
			}
		} catch (Exception e) {
			System.out.println("读取文件内容出错");
			e.printStackTrace();
		}
	}
	
	private static void writeTxtFile(String filepath){
		File file=new File(filepath);
		BufferedWriter writer = null;
		try {
			if(file.isFile()&&!file.exists()){
				System.out.println("找不到指定的文件");
				file.createNewFile();// 不存在则创建
			}
			else{
				//writer = new BufferedWriter(new FileWriter(file,true)); //这里加入true 可以不覆盖原有TXT文件内容 续写
				writer = new BufferedWriter(new FileWriter(file));
				writer.write("hello");
				writer.write("\n");
				writer.write("hello");
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (writer != null) {
				try {
					writer.flush();
					writer.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
	
	public static void main(String argv[]) {
		String filepath=System.getProperty("user.dir")+"/src/com/stone/demo/txtfile.txt";
		writeTxtFile(filepath);
		System.out.println("===================");
		readTxtFile(filepath);
	}
}

抱歉!评论已关闭.