我有一个 InputStream 对象,它实际上是一个 zip 文件。我想将其改回 zip 文件并保存。我正在使用 DWR 的 FileTransfer 类对象来接收客户端上传的数据。
FileTransfer有 3 个方法,getInputStream()是其中之一。它从 FileTransfer 对象返回 InputStream。
就我而言,fileTransfer 对象也保存 zip 文件以及 InputStream 对象。我已经在谷歌上做了很多搜索。但我找不到一个示例来说明 InputStream 到 zip 转换。
更新
String zipName = file.getName();
String zipType = file.getMimeType();
InputStream zipStream = file.getInputStream();
ZipInputStream zis = new ZipInputStream(zipStream);
System.out.println("File Name: "+zipName+"\n"+"File Type: "+zipType);
int c;
File f2 = new File(DATA_STORE_LOC+dat+".zip");
path.setPath2(DATA_STORE_LOC+dat+".zip");
FileOutputStream fos = new FileOutputStream(f2);
ZipOutputStream zos = new ZipOutputStream(fos);
c = zis.read();
System.out.println(c);
while ((c = zis.read(BUFFER)) != …Run Code Online (Sandbox Code Playgroud) 假设我有一个用C#编写的应用程序,名为EquipCtrl.exe,它在PC上作为本地进程运行,以控制一台设备.
显然,我希望在每台PC上只运行一个Equipctrl实例.如果我有两个装备来控制每台PC,那么我会将它限制为每台PC两个实例.
我做的方式是1.进程名称之一.我将进程命名为EqCtrl,在进程启动时,它将使用名称"EqCtrl"计算数字进程.2.执行名称.在启动时,使用执行名称EquipCtrl.exe计算进程数.3.登记处记录.4. SQL Server数据库记录.
对我来说,进程名称或执行名称检测是最简单的,也是我最常做的(如果不是全部的话).但是,他们容易受到名字冲突的影响.即使我进一步找出执行路径,也可以通过将执行文件复制到另一个文件夹来规避限制.
在.NET上执行执行限制的最佳方法是什么?为什么?注册表记录是最好的方式吗?
我写了(在其他人的帮助下)一个awk命令来汇总CSV文件中的列.不幸的是,我在谷歌搜索后awk因为分隔符并不总是相同而在处理CSV文件方面表现不佳(即用引号括起来时应忽略逗号).
似乎Perl脚本可能做得更好.是否可以使用单行Perl脚本(或几乎简洁的东西)实现与此awk命令相同的功能,该命令总计CSV文件的第5列?
cat file.csv | awk -F "\"*,\"*" '{s+=$5} END {printf("%01.2f\n", s)}'
Run Code Online (Sandbox Code Playgroud)
我并没有特别嫁给Perl,但我希望避免编写一个完整的PHP脚本.这时我可以轻松编写一个PHP脚本,但是现在我已经走到这一步了,我想看看我是否能够完成它.
这个问题纯粹是为了满足我自己的好奇心.
在挪威,netbanks通常使用所有账户持有人都有的计算器式(物理)加密狗.您在加密狗中键入您的个人PIN,它会生成一个八位数的代码,您可以使用该代码在线登录.设备本身未连接到网络.
谁知道这个系统是如何工作的?
我最好的猜测是每个加密狗都有一个预生成的数字序列存储.因此,如果您键入已使用的数字或未来太远的数字,登录过程将失败.它可能还依赖于内部时钟来生成数字.到目前为止,我的程序员都没有能够回答这个问题.
[编辑]
特别是我很好奇它在挪威如何做到这一点.
因此,根据jQuery Ajax文档,它在发送请求时以查询字符串的形式序列化数据,但设置processData:false应该允许我在正文中发送实际的JSON.不幸的是,我很难确定第一个,如果发生这种情况,那么第二个对象看起来是什么,它被发送到服务器.我所知道的是服务器没有解析我发送的内容.
使用http客户端发布对象文字时{someKey:'someData'},它可以工作.但是当使用jQuery时data: {someKey:'someData'},它会失败.不幸的是,当我在Safari中分析请求时,它说消息有效负载是[object Object]......很棒......而且在Firefox中帖子是空白的...
在Java端记录正文内容时,它实际上[object Object]是如何发送REAL JSON数据的?
有没有人有过在请求体中序列化JSON数据的Java服务的经验,请求是从jQuery发送的?
BTW这里是完整的$ .ajax请求:
$.ajax({
contentType: 'application/json',
data: {
"command": "on"
},
dataType: 'json',
success: function(data){
app.log("device control succeeded");
},
error: function(){
app.log("Device control failed");
},
processData: false,
type: 'POST',
url: '/devices/{device_id}/control'
});
Run Code Online (Sandbox Code Playgroud) 我只是用C编写代码和原来它没有一个布尔/布尔数据类型.是否有任何C库,我可以包括给我回一个布尔/布尔数据类型的能力吗?
我有一个java项目,我希望打包和出售.如何创建一个将在其他Windows计算机上安装我的程序的.msi文件?如果有任何教程,请指导我们.如果这与如何创建.msi文件有关,我也在使用Eclipse.
谢谢
我已经读过C89不支持可变长度数组,但是下面的实验似乎反驳了:
#include <stdio.h>
int main()
{
int x;
printf("Enter a number: ");
scanf("%d", &x);
int a[x];
a[0] = 1;
// ...
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我这样编译时(假设文件名是va_test.c):
gcc va_test.c -std=c89 -o va_test
Run Code Online (Sandbox Code Playgroud)
有用...
我错过了什么?:-)
List<decimal> FindSumSubset(decimal sum, List<decimal> list)
{
for (int i = 0; i < list.Count; i++)
{
decimal value = list[i];
if (sum - value == 0.0m)
{
return new List<decimal> { value };
}
else
{
var subset = FindSumSubset(sum - value, list.GetRange(i + 1, list.Count -i));
if (subset != null)
{
return subset.Add(value);
}
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
我在这一行上收到错误:
return subset.Add(value);
Run Code Online (Sandbox Code Playgroud)
错误:
Error 1 Cannot implicitly convert type 'void' to 'System.Collections.Generic.List<decimal>'
Run Code Online (Sandbox Code Playgroud)
有谁知道我怎么解决这个>?
我想研究类型系统理论.我没有类型系统理论的任何背景,所以我或多或少是一个初学者(除了我读过的关于这个主题的文章,我发现由于使用的符号而令人生畏).什么是可以让我入门的好书?我正在看Benjamin C. Pierce的"类型和编程语言"一书.这适合初学者还是太难?如果我开始学习还能用什么其他东西太难了?
谢谢,
-
干杯,亚历克斯