Java

c#调用java 能否处理二进制数据

小樊
83
2024-11-29 12:26:46
栏目: 编程语言

是的,C# 可以调用 Java 并处理二进制数据。为了实现这一点,你需要使用一个跨平台的通信协议,如 RESTful API、gRPC 或 Apache Thrift 等。这些协议允许你在 C# 和 Java 之间传输二进制数据。

以下是一个简单的示例,展示了如何使用 RESTful API 在 C# 和 Java 之间传输二进制数据:

  1. 在 Java 中创建一个 RESTful API:
import java.io.File;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("/api/binary")
public class BinaryResource {

    @GET
    @Path("/download")
    @Produces(MediaType.APPLICATION_OCTET_STREAM)
    public byte[] downloadBinaryData() {
        // 读取二进制文件
        File file = new File("path/to/your/binary/file.bin");
        byte[] data = new byte[(int) file.length()];
        try (FileInputStream fis = new FileInputStream(file)) {
            fis.read(data);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return data;
    }
}
  1. 在 C# 中调用 Java RESTful API:
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        string url = "http://localhost:8080/api/binary/download";
        using (HttpClient client = new HttpClient())
        {
            // 发送请求并获取二进制数据
            byte[] binaryData = await client.GetByteArrayAsync(url);

            // 处理二进制数据
            File.WriteAllBytes("path/to/save/binary/file.bin", binaryData);
        }
    }
}

在这个示例中,我们首先在 Java 中创建了一个 RESTful API,用于下载二进制文件。然后,在 C# 中,我们使用 HttpClient 类发送请求并获取二进制数据。最后,我们将二进制数据保存到本地文件。

请注意,这个示例仅用于演示目的。在实际应用中,你可能需要根据具体需求对代码进行调整。

0
看了该问题的人还看了