gpt4 book ai didi

perl - 一点一点地读写文件

转载 作者:行者123 更新时间:2023-12-02 05:03:39 24 4
gpt4 key购买 nike

例如,有一个 .jpg 文件或其他文件。我想一点一点地读。我这样做:

open(FH, "<", "red.jpg") or die "Error: $!\n";
my $str;
while(<FH>) {
$str .= unpack('B*', $_);
}
close FH;

嗯,它给了我 $str 和文件的 0101001。之后我这样做:

open(AB, ">", "new.jpg") or die "Error: $!\n";
binmode(AB);
print AB $str;
close AB;

但它不起作用。

我该怎么做?以及如何做到无论字节顺序如何(跨平台)都能正常工作?

最佳答案

问题:

  1. 您在阅读时也没有使用 binmode
  2. 逐行读取二进制文件没有意义,因为它们没有行。
  3. 您不必要地为文件句柄使用了全局变量。
  4. 回答您问题的那个:您没有反转unpack

open(my $FH, "<", "red.jpg")
or die("Can't open red.jpg: $!\n");
binmode($FH);
my $file; { local $/; $file = <$FH>; }
my $binary = unpack('B*', $file);

open(my $FH, ">", "new.jpg")
or die("Can't create new.jpg: $!\n");
binmode($FH);
print $FH pack('B*', $binary);

关于perl - 一点一点地读写文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16599200/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com