取得文件行数错误,百分请教! 是否是java的缓冲区大小的问题呢?LineNumberReader有个设置读缓存大小的构造函数LineNumberReader((Reader in,int sz));试试。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 试过了。LineNumberReader((Reader in,45000000)); //文件大约有42M大不行。还是出错 你为什么要用LineNumberReader 呀?就用BufferedReader呀。你的RedHat下有Tomcat么?你在Tomcat下测一下,看看是不是Web服务器造成的。 搂主是用的jdk1.4吗?import java.util.regex.*;import java.io.*;import java.nio.*;import java.nio.channels.*;import java.nio.charset.*;import java.nio.channels.spi.*;public class LineCounter { public static void count(String file) throws IOException { FileInputStream fis = new FileInputStream(file); FileChannel fileChannel = fis.getChannel(); int size = (int) fileChannel.size(); MappedByteBuffer buffer = null; try { buffer = fileChannel.map(FileChannel.MapMode.READ_ONLY, 0, size); } catch (IOException e) { System.out.println("文件是不是真的存在哟?"); System.exit(1); } finally { fileChannel.close(); } Charset charset = Charset.forName("ISO-8859-1"); CharsetDecoder decoder = charset.newDecoder(); CharBuffer lines = decoder.decode(buffer); Pattern linePattern = Pattern.compile(".*\r?\n"); Matcher matcher = linePattern.matcher(lines); int numberOfLines = 0; for(; matcher.find(); numberOfLines++){ } fileChannel.close(); System.out.println("有"+numberOfLines+"行"); } public static void main(String[] args) { if(args.length == 0) { System.err.println("请输入参数"); System.exit(1); } try { LineCounter.count(args[0]); } catch (IOException ex) { ex.printStackTrace(); System.exit(1); }} File f = new File(fileName); try { BufferedReader read = new BufferedReader(new FileReader(fileName)); int count=0; String line; while((line=read.readLine())!=null){ if(line.length()>0) count++; } } FileReader fr = new FileReader("D:/"dfdffd.); BufferedReader br = new BufferedReader(fr); while ( (s = br.readLine()) != null) { } 写个JAVA 版的 批处理程序 正则表达式引起CPU长时间表100%,请各位达人指点 一个jsp问题 高手来帮帮忙阿.!我是新手..在线等答案.!! Graphics是在何处被实例化?对于windows版jdk来说,DrawLine等操作是在何处实现? java技术群13134848,拒绝初学者。大家尽情的讨论和学习、帮助 JDK源码中那些声明为native的方法在哪里可以看到它的源码? 谢谢! ◆◆有做胖客户的吗?◆◆ <thinking in java>那里有?? 有关JBuilder7的小问题 怎样利用java解压缩文件? 关于数组和向量的问题
LineNumberReader((Reader in,45000000)); //文件大约有42M大
不行。还是出错
你的RedHat下有Tomcat么?你在Tomcat下测一下,看看是不是Web服务器造成的。
import java.util.regex.*;
import java.io.*;
import java.nio.*;
import java.nio.channels.*;
import java.nio.charset.*;
import java.nio.channels.spi.*;public class LineCounter {
public static void count(String file) throws IOException {
FileInputStream fis = new FileInputStream(file);
FileChannel fileChannel = fis.getChannel(); int size = (int) fileChannel.size();
MappedByteBuffer buffer = null;
try {
buffer = fileChannel.map(FileChannel.MapMode.READ_ONLY, 0, size);
}
catch (IOException e) {
System.out.println("文件是不是真的存在哟?");
System.exit(1);
}
finally {
fileChannel.close();
}
Charset charset = Charset.forName("ISO-8859-1");
CharsetDecoder decoder = charset.newDecoder();
CharBuffer lines = decoder.decode(buffer);
Pattern linePattern = Pattern.compile(".*\r?\n");
Matcher matcher = linePattern.matcher(lines);
int numberOfLines = 0;
for(; matcher.find(); numberOfLines++){
}
fileChannel.close();
System.out.println("有"+numberOfLines+"行"); } public static void main(String[] args) {
if(args.length == 0) {
System.err.println("请输入参数");
System.exit(1);
}
try {
LineCounter.count(args[0]);
}
catch (IOException ex) {
ex.printStackTrace();
System.exit(1);
}
}
try {
BufferedReader read = new BufferedReader(new FileReader(fileName));
int count=0;
String line;
while((line=read.readLine())!=null){
if(line.length()>0)
count++;
}
}
BufferedReader br = new BufferedReader(fr); while ( (s = br.readLine()) != null) { }