又是你啊 ,上午已经回答了你一个问题了。你的编码格式设置下 就可以了。
房县ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
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"));
}
}
}
}
如果你是用UTF-8编码写入文件的,Windows的记事本是通过文件开头的EF BB BF三字节的BOM标记识别是否是UTF-8格式的,如果文件头部没有这三个字节就会被Windows记事本当做ANSI编码显示,所以用记事本打开是乱码。
你现在是以UTF-8的形式去读取文件
你换一下,用GBK吧,应该文件的编码问题
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fis,"UTF-8"))就是这行代码
所以你打印wenti看看不是乱码,如果是乱码,请表明test3.txt的编码不是UTF-8的编码,用一些文本工具就是查出它的编码。
如果是wenti不是乱码,则证明,你java文件的编码不是UTF-8,你如果进行转码 new String(String.getBItes(),"UTF-8")