举例说明使用BufferedReader时出现乱码时的解决方法

本文提供了一段使用Java实现文本文件读取的代码示例,包括如何使用BufferedReader、InputStreamReader等类进行文件操作,并通过LinkedList和ListIterator实现文本行的逆序打印。详细介绍了具体步骤和相关API的用法。

解决方法如下:

BufferedReader br=new BufferedReader(new InputStreamReader(connectiton.getInputStream(),"GB2312"));
或者
BufferedReader br=new BufferedReader(new InputStreamReader(connectiton.getInputStream(),"GBK"));

具体举例:

     FileInputStream fileInputStream = new FileInputStream("文件路径");
     InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream,"GB2312");//或者"GBK"
     BufferedReader br= new BufferedReader(inputStreamReader);

 

现以第二届ITAT大赛最后一道编程题为例

 

1.编写一个Java程序要求:开启一个文本文件,一次读取其内的一行文本。令每一行形成一个String,并将读出的String对象置于LinkedList中。请以相反次序印出LinkedList内的所有文本行。

 

package MyTest;

import java.io.*;
import java.util.LinkedList;
import java.util.ListIterator;

/**
 *
 * @author Administrator
 */
public class Test22 {

    public static void main(String args[]) throws FileNotFoundException, IOException {
        //FileReader fr = new FileReader("D:/我的文档/NetBeansProjects/IT/src/MyTest/c.txt");
        FileInputStream fr=new FileInputStream("D:/我的文档/NetBeansProjects/IT/src/MyTest/b.txt");
        InputStreamReader is=new InputStreamReader(fr,"GB2312");
        BufferedReader br = new BufferedReader(is);
        LinkedList ll = new LinkedList();
        String s;
        while ((s = br.readLine()) != null) {           
            ll.addFirst(s);
        }
        br.close();
        ListIterator li = ll.listIterator(ll.size());
        while (li.hasPrevious()) {
            System.out.println(li.previous());
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值