java读取txt(大txt文件)乱码问题 我想写一个读取txt小说的工具,大家知道这种文件一般比较大,我首先使用每次读取一行的方式,这样虽不会出乱码,但是速度慢的惊人(自己测试是这样,不知道是否有误),就改用了构造成一个RandomAccessFile,每次读取1024个字节,速度虽然提升了,但是这样会造成局部乱码,设置文字错误的情况。不知道各位大虾有什么好的建议 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用BufferedReader 的 readLine() FileInputStream fis=new FileInputStream("1.txt"); InputStreamReader isr = new InputStreamReader(fis); BufferedReader br = new BufferedReader(isr); br.readLine(); --具体就不写啦带缓冲区的,应该会快一些,而且是字符流,中文应该也不会乱码 用BufferedReader再1K读.BufferedReader br = null; try { br = new BufferedReader(new InputStreamReader( new FileInputStream("src/com/classloader/dynamic/MyDynamic.java"))); char[] buffer = new char[1024]; int n ; while((n=br.read(buffer))!=-1){ System.out.print(new String(buffer,0,n)); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally{ if(br!=null) try { br.close(); } catch (IOException e) { e.printStackTrace(); } } 要想更快可以看看 java.nio这个包的知识 讲的是更高效的读取数据 下面是我项目中读写文件用到的代码!可以解决中文乱码问题!希望对你有用InputStreamReader read = null;BufferedReader br = null;OutputStreamWriter writer = null;BufferedWriter bw = null; try { File inputPath = new File(读取文件的路径); read = new InputStreamReader(new FileInputStream(inputPath),"UTF-8"); br = new BufferedReader(read); File outputPath = new File(写出文件的路径); writer = new OutputStreamWriter(new FileOutputStreamoutputPath),"UTF-8"); bw = new BufferedWriter(writer); while循环读写文件就不写了 } catch (Exception e) { e.printStackTrace(); } finally { try { br.close(); bw.close(); read.close(); writer.close(); } catch (Exception e) { e.printStackTrace(); } } RandomAccessFile有两个个方法readUTF()和writeUTF(),可以使用utf-8读写入文件!你试试看能不能解决中文 建议楼主readline,这样比较好,不容易出错,还可以错误追踪,可能是你的特殊符号出现的乱码 静态方法的内存分析的疑惑…… 在Java中使用C语言中的goto语句 JAVA 串口通信问题 .. 麻烦大家了 如何建立词库??? JBX中调试JSP程序时如何避免调试器同时开启10个线程 谁能给我一个socket的实例???狂放分!! 错在哪里? 刚开始学JAVA ,遭受致命打击,照抄书上原代码都会出错?谁能告诉我怎么回事? 求教,开发JAVA程序最好用何开发软件? Java怎样获取网页上ajax之后的内容 使用JAVA连接MYSQL插入数据乱码问题 java的程序要连接数据库应该怎么办?
FileInputStream fis=new FileInputStream("1.txt");
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
br.readLine(); --具体就不写啦带缓冲区的,应该会快一些,而且是字符流,中文应该也不会乱码
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(
new FileInputStream("src/com/classloader/dynamic/MyDynamic.java")));
char[] buffer = new char[1024]; int n ;
while((n=br.read(buffer))!=-1){
System.out.print(new String(buffer,0,n));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
if(br!=null)
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
讲的是更高效的读取数据
可以解决中文乱码问题!
希望对你有用InputStreamReader read = null;
BufferedReader br = null;
OutputStreamWriter writer = null;
BufferedWriter bw = null;
try {
File inputPath = new File(读取文件的路径);
read = new InputStreamReader(new FileInputStream(inputPath),"UTF-8");
br = new BufferedReader(read); File outputPath = new File(写出文件的路径);
writer = new OutputStreamWriter(new FileOutputStreamoutputPath),"UTF-8");
bw = new BufferedWriter(writer);
while循环读写文件就不写了
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
br.close();
bw.close();
read.close();
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
你试试看能不能解决中文