Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 读取并查找文件大小为1 GB的行_Java_Php_Perl_Text Files - Fatal编程技术网

Java 读取并查找文件大小为1 GB的行

Java 读取并查找文件大小为1 GB的行,java,php,perl,text-files,Java,Php,Perl,Text Files,我需要读取大于1GB的文本文件以查找特定行。这应该用Perl、PHP或Java编写。此方法不应加载服务器 有什么方法可以做到这一点呢?这里没有太多的内容,但是要创建一个缓冲读取器,一次读一行,然后检查它是否就是你要找的那一行。如果你有一种“适合于正确工作的正确工具”的态度,并且可以费心学习新的工具,perl,awk,就连sed都是非常好的工具,适合做这种工作。否则,任何完整的语言都可以,Java也可以完成这项工作。但是使用缓冲类,比如BufferedReader,否则速度会非常慢 perl中的示

我需要读取大于1GB的文本文件以查找特定行。这应该用Perl、PHP或Java编写。此方法不应加载服务器


有什么方法可以做到这一点呢?

这里没有太多的内容,但是要创建一个
缓冲读取器,一次读一行,然后检查它是否就是你要找的那一行。

如果你有一种“适合于正确工作的正确工具”的态度,并且可以费心学习新的工具,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>) { 
...