java读取txt中一行中文时出现的是乱码,怎么能显示出中文??代码如下:

import java.io.*;
import java.util.*;
import java.lang.*;
public class Random
{

public static void main(String[] args)throws Exception
{
int lineCount=0;
File f=new File("E:\\数学3班.txt");
RandomAccessFile raf = new RandomAccessFile(f, "r");
java.util.Random r1=new java.util.Random();
BufferedReader buffer = new BufferedReader(new InputStreamReader(new FileInputStream(f)));
while(buffer.readLine() != null)
{
lineCount++;
}
int a=r1.nextInt(lineCount);
int i=0;
while(raf.readLine()!=null)
{
i++;
if(i==a)
{
System.out.println(raf.readLine());
}
}
}
}

又是你啊 ,上午已经回答了你一个问题了。你的编码格式设置下 就可以了。

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;
public class Random {
 public static void main(String[] args) throws Exception {
  int lineCount = 0;
  File f = new File("E:\\数学3班.txt");
  RandomAccessFile raf = new RandomAccessFile(f, "r");
  java.util.Random r1 = new java.util.Random();
  BufferedReader buffer = new BufferedReader(new InputStreamReader(
    new FileInputStream(f)));
  while (buffer.readLine() != null) {
   lineCount++;
  }
  int a = r1.nextInt(lineCount);
  int i = 0;
  while (raf.readLine() != null) {
   i++;
   if (i == a) {
    String temp = raf.readLine();
    System.out
      .println(new String(temp.getBytes("iso8859-1"), "GBK"));
   }
  }
 }
}

追问

为什么运行之后会出现空白的

追答

这是你代码的问题 你多运行几遍 能出来一次
你检查下你代码的逻辑 ,这个你自己检查吧

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-21
这一行,
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File("")), "UTF-8"));将编码格式改成你写txt所用的编码格式...
第2个回答  2013-06-21
在读取的时候把编码格式改了,就好了
第3个回答  2013-06-21
最好不要中文路径追问

是txt中是中文

追答

"E:\\数学3班.txt"这个路径不要是中文的

追问

。。。

相似回答