【问题标题】:Read another software file via java program通过java程序读取另一个软件文件
【发布时间】:2020-04-22 15:01:58
【问题描述】:

例如,我正在开发一个可以读取文件的 java 程序; PSD 文件(example.psd),我将编辑文件的字节。如何调用 adobe 软件并通过 java 程序读取编辑的字节而无需写出文件?

package sandbox;

import java.io.IOException;

public class Sandbox {

    /**
     * Example of how to run an executable from Java.
     * 
     * @param args 
     */
public static String readFileAsString(String fileName)throws Exception 
  { 
    String data = ""; 
    data = new String(Files.readAllBytes(Paths.get(fileName))); 
    return data; 
  } 
    public static void main(String[] args) {
        try {
            Runtime runTime = Runtime.getRuntime();
  String data = readFileAsString("C:\\Users\\pankaj\\Desktop\\example.psd");      
            String executablePath = "C:\\Users\\sdkca\\AppData\\Local\\Programs\\Adobe\\Adobe.exe";

            Process process = runTime.exec(executablePath);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

我可以调用 adobe,也可以读取字节,我如何告诉 adobe 读取字节?

【问题讨论】:

  • 你不会的。并且您可以使用 Java 很好地读取 psd 文件。当然,Java 对此无能为力。此外,String 是文本(不是二进制)。对不起。
  • 一般情况下,您不能这样做,因为编写 Adob​​e 软件的程序员并未对其进行编程以接受未确定的字节源。他们写它是为了打开一个文件并阅读它。所以它需要一个文件系统上的文件。
  • @RealSkeptic 这意味着它是可能的,但是必须编辑软件(Adobe)以接收来自未确定源的字节,或者将我的 java 程序标记为确定源。对吗?

标签: java string file architecture byte


【解决方案1】:

看这里: Java open file with another program

如果本地操作系统中有文件的默认打开器,那么 Desktop.getDesktop().open(...)

可以解决问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    • 2020-03-27
    • 2018-01-09
    • 2011-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多