.NET和Java中BYTE的区别

场景:java 作为客户端调用已有的一个.net写的server的webservice,输入string,返回字节数组。

问题:返回的值不是自己想要的,跟.net客户端直接调用总是有差距

分析:平台不一样,字节表达不一样

经过查询之后,结果如下

.NET和Java中BYTE表达确实不一样,区别如下

1.有符号和无符号

 c#中字节byte的范围是0~255;

 java中字节byte的范围是-128~127:

2.高低位顺序不同

 比如16位整数10用16进制000A,在.net转换成byte数组是00 0A,而java/flash/flex等转换是0a 00

Java,可以使用Servlet API的Part接口来实现类似于HttpPostedFileBase的功能。Part接口提供了与HTTP请求的单个文件或表单字段交互的方法。 以下是一个简单的Java Servlet示例,演示如何使用Part接口来处理上传的文件: ```java import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.annotation.*; import javax.servlet.http.*; @WebServlet("/upload") @MultipartConfig public class FileUploadServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取上传的文件 Part filePart = request.getPart("file"); String fileName = getSubmittedFileName(filePart); // 保存文件 InputStream fileContent = filePart.getInputStream(); File file = new File("/path/to/save/directory", fileName); OutputStream out = new FileOutputStream(file); byte[] buffer = new byte[1024]; int length; while ((length = fileContent.read(buffer)) > 0) { out.write(buffer, 0, length); } out.close(); // 返回成功响应 response.getWriter().println("File uploaded successfully!"); } private String getSubmittedFileName(Part filePart) { String header = filePart.getHeader("content-disposition"); for (String token : header.split(";")) { if (token.trim().startsWith("filename")) { return token.substring(token.indexOf("=") + 2, token.length() - 1); } } return ""; } } ``` 在上面的示例,`@MultipartConfig`注解告诉Servlet容器,这个Servlet将处理multipart/form-data类型的请求。`request.getPart("file")`方法获取上传的文件。`getSubmittedFileName`方法从HTTP头提取文件名。最后,通过将文件内容写入磁盘并发送成功响应来完成文件上传。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值