Java读取txt文件和写入txt文件

写Java程序时经常碰到要读如txt或写入txt文件的情况,但是由于要定义好多变量,经常记不住,每次都要查,特此整理一下,简单易用,方便好懂!

package edu.thu.keyword.test;

import java.io.File;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileWriter;

public class cin_txt {
	static void main(String args[]) {
		try { // 防止文件建立或读取失败,用catch捕捉错误并打印,也可以throw

			/* 读入TXT文件 */
			String pathname = "D:\\twitter\\13_9_6\\dataset\\en\\input.txt"; // 绝对路径或相对路径都可以,这里是绝对路径,写入文件时演示相对路径
			File filename = new File(pathname); // 要读取以上路径的input。txt文件
			InputStreamReader reader = new InputStreamReader(
					new FileInputStream(filename)); // 建立一个输入流对象reader
			BufferedReader br = new BufferedReader(reader); // 建立一个对象,它把文件内容转成计算机能读懂的语言
			String line = "";
			line = br.readLine();
			while (line != null) {
				line = br.readLine(); // 一次读入一行数据
			}

			/* 写入Txt文件 */
			File writename = new File(".\\result\\en\\output.txt"); // 相对路径,如果没有则要建立一个新的output。txt文件
			writename.createNewFile(); // 创建新文件
			BufferedWriter out = new BufferedWriter(new FileWriter(writename));
			out.write("我会写入文件啦\r\n"); // \r\n即为换行
			out.flush(); // 把缓存区内容压入文件
			out.close(); // 最后记得关闭文件

		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}


Java中读写txt文件时,如果编码格式不匹配,就会出现乱码现象。为了避免中文乱码问题,需要进行以下步骤: 1. 首先,需要对txt文件的编码格式进行研究。在Java中,常见的编码格式有unicode、unicode big endian、utf-8、utf-16、gb2312ANSI。\[1\] 2. 在读取txt文件时,需要设置正确的编码格式。可以通过解析文件头部的编码格式来获取正确的编码格式,然后按照该格式读取文件。这样就可以避免产生乱码。\[2\] 3. 在建立输入流时,需要使用与原文件一致的编码格式进行读取,以避免出现中文乱码问题。可以使用InputStreamReader类来指定编码格式,例如使用UTF-8编码格式读取文件。\[3\] 下面是一个读取txt文件并避免中文乱码问题的示例代码: ```java String filePath = "d:/1.txt"; BufferedReader br = null; try { File file = new File(filePath); if (!file.exists()) { // 文件不存在的处理逻辑 } FileInputStream fis = new FileInputStream(file); InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); // 避免中文乱码 br = new BufferedReader(isr); List<String> list = new ArrayList<String>(); String line = ""; // 逐行读取文本 while ((line = br.readLine()) != null) { list.add(line); } // 读取文件并执行业务逻辑 // ... return list; } finally { try { if (br != null) { br.close(); } } catch (Exception e) { // 关闭文件失败的处理逻辑 } } ``` 通过以上步骤,可以在Java中读写txt文件时避免出现乱码问题。 #### 引用[.reference_title] - *1* *2* [java读取txt文件乱码解决方案](https://blog.youkuaiyun.com/lilongfei123321/article/details/84472241)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [JAVA:如何读写txt文件,并解决中文乱码问题](https://blog.youkuaiyun.com/quan278905570/article/details/120096446)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值