java调用perl读写数据

时间:2016-06-17 09:33:02

标签: java linux perl

我在目录'/ tmp'中有两个文件:test.txt,test.pl

test.txt的内容是:

abcdefg

test.pl的内容是:

 #!/usr/bin/perl -w
 chdir '/tmp';
 $data = `more test.txt`;
 open (MYFILE,">","newtest.txt") || die ("can not open this file");
 print  MYFILE $data;

然后在java类中我写道:

Process ps1= Runtime.getRuntime().exec("perl /tmp/test.pl ");

然后从perl生成的newtest.txt的内容是:

::::::::::: 
test.txt 
:::::::::::
abcdefg

这是问题,存在差异

:::::::
test.txt
:::::::

但是当我在linux中运行'perl test.pl'时,两个文件之间没有区别。

谁知道原因?谢谢!

1 个答案:

答案 0 :(得分:1)

more在这里是有罪的。它旨在一次查看一个文件并等待点击,例如 SPACE 显示下一页。请尝试使用cat代替more,看看是否是原因。

more尝试智能并自动检测是否在交互情况下调用它,但有时会失败。根据其设置,它可能会表现为cat,但您无法确定...