Java 读取并查找文件大小为1 GB的行
我需要读取大于1GB的文本文件以查找特定行。这应该用Perl、PHP或Java编写。此方法不应加载服务器Java 读取并查找文件大小为1 GB的行,java,php,perl,text-files,Java,Php,Perl,Text Files,我需要读取大于1GB的文本文件以查找特定行。这应该用Perl、PHP或Java编写。此方法不应加载服务器 有什么方法可以做到这一点呢?这里没有太多的内容,但是要创建一个缓冲读取器,一次读一行,然后检查它是否就是你要找的那一行。如果你有一种“适合于正确工作的正确工具”的态度,并且可以费心学习新的工具,perl,awk,就连sed都是非常好的工具,适合做这种工作。否则,任何完整的语言都可以,Java也可以完成这项工作。但是使用缓冲类,比如BufferedReader,否则速度会非常慢 perl中的示
有什么方法可以做到这一点呢?这里没有太多的内容,但是要创建一个
缓冲读取器,一次读一行,然后检查它是否就是你要找的那一行。如果你有一种“适合于正确工作的正确工具”的态度,并且可以费心学习新的工具,perl,awk,就连sed都是非常好的工具,适合做这种工作。否则,任何完整的语言都可以,Java也可以完成这项工作。但是使用缓冲类,比如BufferedReader,否则速度会非常慢
perl中的示例:
use strict;
use warnings;
open INFILE, "<infile" or die;
open OUTFILE, ">outfile" or die;
while(<INFILE>) {
$_=~s/source-regex/replace-with/g;
print OUTFILE;
}
使用严格;
使用警告;
开孔填充、“出孔”或模具;
while(){
$\ux=~s/source regex/replace为/g;
打印输出文件;
}
我认为一行程序可以工作,但要复杂一点。在perl中:
use strict;
use warnings;
my $line = 'what to be searched';
open my $fh, '<', '/path/to/the/file' or die "unable to open file: $!";
while(<$fh>) {
chomp;
if ($_ eq $line) {
print "found $line at line $.\n";
last;
}
}
使用严格;
使用警告;
我的$行='要搜索的内容';
打开我的$fh,“作为一行:
perl -nwe 'print if /source-regex/' input.txt > output.txt
作为脚本:
use strict;
use warnings;
while (<>) {
print if /source-regex/;
}
有关阅读Java文件的信息,请参阅。这是一个考试题还是什么?复杂perl-nwe'print if/source regex/'input.txt>output.txt
Whoops,我知道会有某种替代品。这个班轮就行了。谢谢。更换并不复杂。只需将m/
更改为s//
并打印即可。同样的土豆。
open my $input, '<', shift or die $!;
while (<$input>) {
...