java 读写文件乱码_java读取、写入Txt文件乱码解决

package com.jeeplus.modules.account.web;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.util.ArrayList;

import java.util.List;

import com.drew.lang.BufferReader;

import scala.xml.dtd.PublicID;

/**

* 功能:Java读取txt文件的内容

* 步骤:1:先获得文件句柄

* 2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取

* 3:读取到输入流后,需要读取生成字节流

* 4:一行一行的输出。readline()。

* 备注:需要考虑的是异常情况

* @param filePath

* @author mch

* @serialData 2017-10-11

*/

public class FileUtils {

/**

* 文件写入

* @param fileName

* @param fileContent

*/

public static void writeFile(String fileName,String fileContent){

try {

File file=new File(fileName);

if(!file.exists()){ // 判断是否存在

file.createNewFile(); // 不存在 创建一个

}

OutputStreamWriter write=new OutputStreamWriter(new FileOutputStream(file), "gbk"); //文件写入 这里考虑到文件编码问题 utf-8 暴乱码 --》修改gbk

BufferedWriter writer=new BufferedWriter(write); //文件写

writer.write(fileContent);

writer.close(); //文件关闭

} catch (Exception e) {

e.printStackTrace();

System.out.println("文件写入出错!");

}

}

/**

* 读取Txt文件信息

* @param filePath

*/

public static List readTxtFile(String filePath){

List linList=new ArrayList();

try {

String encoding="utf-8";

File file=new File(filePath); //文件

if(file.isFile() && file.exists()){ // 判断 文件是否存在

InputStreamReader read=new InputStreamReader(new FileInputStream(file), "gbk"); //这里考虑到文件编码问题 utf-8 暴乱码 --》修改gbk

BufferedReader bufferedReader=new BufferedReader(read); //读取文件信息 内容

String linTxt=null; // 读取

while ((linTxt=bufferedReader.readLine())!=null) { //判断读取一行文件信息

if(linTxt.trim().length()>1){

linList.add(linTxt);

}

}

read.close();//关闭

}else {

System.out.println("找不到指定的文件!");

}

} catch (Exception e) {

// TODO: handle exception

System.out.println("读取文件内容信息出错!");

e.printStackTrace();

}

return linList;

}

//测试

public static void main(String[] args) {

String filePath="F:\\access\\small.txt";

//readTxtFile(filePath);

System.out.println("&&&&&:"+readTxtFile(filePath)+"\t");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值