【发布时间】: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是文本(不是二进制)。对不起。 -
一般情况下,您不能这样做,因为编写 Adobe 软件的程序员并未对其进行编程以接受未确定的字节源。他们写它是为了打开一个文件并阅读它。所以它需要一个文件系统上的文件。
-
@RealSkeptic 这意味着它是可能的,但是必须编辑软件(Adobe)以接收来自未确定源的字节,或者将我的 java 程序标记为确定源。对吗?
标签: java string file architecture byte