首页 新闻 会员 周边 捐助

Java终端执行和代码执行命令生成的文件不一样?

0
悬赏园豆:10 [已解决问题] 解决于 2018-01-05 22:34

我用终端执行 lame -b 16 /java/5/a.wav 
生成的是缩小的a.mp3文件 , 是正确的,
但是我用Java代码
Process p=run.exec("lame -b 16 /java/5/a.wav");
生成的文件是a.mp3 但是生成的也是a.mp3,但是好像是文本,不是mp3文件 而且是0kb
为什么?

源码

public static void main(String[] args) {
String localhost_dir = "";
Runtime run = null;
try {
run = Runtime.getRuntime();
//调用解码器来将wav文件转换为mp3文件
Process p=run.exec("lame /java/5/a.wav"); // lame 你的.wav文件

//释放进程
p.getOutputStream().close();
p.getInputStream().close();
p.getErrorStream().close();
p.waitFor();

} catch (Exception e) {
e.printStackTrace();
}finally{
//最后都要执行的语句
//run调用lame解码器最后释放内存
run.freeMemory();
}

}

freedom/cn的主页 freedom/cn | 初学一级 | 园豆:8
提问于:2018-01-05 21:42
< >
分享
最佳答案
1

p.waitFor();p.getOutputStream().close(); 之前试试

收获园豆:10
dudu | 高人七级 |园豆:29333 | 2018-01-05 21:58

l厉害了我的哥

freedom/cn | 园豆:8 (初学一级) | 2018-01-05 22:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册