我有一个文件列表,我需要按特定顺序将它们读取到给定大小的byte [].这对于单个文件本身不是问题,简单的((got = fs.Read(piece,0,pieceLength))> 0)完成工作完全正常.文件的最后一段可能比期望的要小,这很好.
现在,有一个棘手的问题:如果我有多个文件,我需要有一个连续的流,这意味着如果文件的最后一块小于pieceLength,那么我需要读取(pieceLength-got)的下一个文件,然后继续,直到最后一个文件的结尾.
基本上,给定X文件,我将始终读取完全为pieceLength long的部分,除了最后一个文件的最后一部分,它可能更小.
我只是想知道是否已经在.net(3.5 SP1)中构建了一些功能.我目前的方法是创建一个接受文件列表然后公开Read(byte[] buffer, long index, long length)函数的类,类似于FileStream.Read().这应该是非常直接的,因为我不必更改我的读取数据的调用代码,但在重新发明轮子之前,我只想仔细检查轮子是否已经内置到BCL中.
谢谢 :)
我目前在ActionScript 3.0中做了很多工作,我也喜欢用Java编程.JavaFX对我来说是完美的吗?JavaFX的一般感觉是什么,它会成为一个强大的力量,还是与Java Applets走同一条道路?我与之合作的设计师是否能够熟悉JavaFX,以及他们对ActionScript和JavaScript的熟悉程度?
我在使用Hibernate的DetachedCriteria的SQL中遇到了性能问题.我有一些多对一关系,当Hibernate生成SQL时,它包括FROM中连接的表中的所有字段.当发生这种情况时,它需要MySQL很长时间来运行查询(它还有一个order by和sub查询添加到问题中).对于我目前的50k记录~6秒.当我将SELECT中不必要的字段删除到我关注的域对象时,它在500ms以下运行良好.
有没有办法告诉Hibernate不要包含连接中的字段?
我已经尝试将映射文件中的fetch参数设置为'join'和'select',它在生成的SQL中没有任何区别.
我也尝试过设置不同的根条目,但是从我读过的内容来看,这与分页(我也在做)无关.
我可以尝试将查询编写为HQL,但是使用子查询会让它变得更加令人头疼.
如何从一组列表中获取笛卡尔积(每种可能的值组合)?
输入:
somelists = [
[1, 2, 3],
['a', 'b'],
[4, 5]
]
Run Code Online (Sandbox Code Playgroud)
期望的输出:
[(1, 'a', 4), (1, 'a', 5), (1, 'b', 4), (1, 'b', 5), (2, 'a', 4), (2, 'a', 5) ...]
Run Code Online (Sandbox Code Playgroud) 通过将功能放入一个函数中,单独构成一个封装示例还是需要使用对象进行封装?
我试图理解封装的概念.如果我从这样的事情出发,我的想法是:
n = n + 1
作为大量代码的一部分在野外执行,然后我把它,并把它放在像这样的函数中,然后我在一个方法中封装了这个加法逻辑:
addOne(n)
n = n + 1
return n
Run Code Online (Sandbox Code Playgroud)
或者更多的情况是,如果我从外部世界隐藏addOne的细节,它只是封装 - 就像它是一个对象方法,我使用私有/受保护的访问修饰符?
可以==在Java中使用枚举,还是需要使用.equals()?在我的测试中,==总是有效,但我不确定我是否能保证这一点.特别是,.clone()枚举上没有方法,所以我不知道是否有可能得到一个枚举,其.equals()返回的值不同于==.
例如,这样就可以了:
public int round(RoundingMode roundingMode) {
if(roundingMode == RoundingMode.HALF_UP) {
//do something
} else if (roundingMode == RoundingMode.HALF_EVEN) {
//do something
}
//etc
}
Run Code Online (Sandbox Code Playgroud)
或者我需要这样写:
public int round(RoundingMode roundingMode) {
if(roundingMode.equals(RoundingMode.HALF_UP)) {
//do something
} else if (roundingMode.equals(RoundingMode.HALF_EVEN)) {
//do something
}
//etc
}
Run Code Online (Sandbox Code Playgroud) 我的表单(WinForms、.NET 3.5)上有一个 Combobox 控件,它的DropDownStyle属性设置为Simple。假设它用字母表中的字母填充,作为字符串对象(“a”、“b”、“c”等)。
当我在组合框的输入字段中键入一个字母时,正确的项目将显示在下方。
这是我想要的行为。但我也想选择第一个匹配项。
是否有 Combobox 控件的属性可以实现这一点?还是我需要以编程方式处理?
我在服务器上有一台服务器(具有静态IP)并且想要在家中运行服务器而且不想从dyndns.com购买dyndns软件包
我想要找到一个程序,这样做没有花钱和使用我自己的服务器和域,所以我可以有myclient.domain.com或我想自己写.我能用自定义apache conf做到这一点吗?
编辑:
我有1个带有静态IP的服务器,我想在家里运行服务器(动态IP)我想使用带有静态ip的服务器作为dyndns管理服务器运行
我有三个双变量a,b和c
a = 0.000006
b = 6
c = a/b;
Run Code Online (Sandbox Code Playgroud)
所以C应该是0.000001
我想在文本框中显示这个值,所以我写了
textbox.text = c.tostring();
Run Code Online (Sandbox Code Playgroud)
但它的结果为"1E-06"..
任何人都可以帮助我如何在文本框中输入正确的值?
谢谢
[对不起,这不是一个直接的编程问题.但我最近切换到一台新的Vista机器,我保持启用UAC(请不要告诉我禁用它,它不是一个选项).
每次运行gnu的patch.exe时,我都会从Vista获得一个提升对话框.如果我将patch.exe重命名为foo.exe它不会这样做,所以我认为这是Vista的"启发式"之一.
有谁知道如何禁用它?这让我疯狂,谷歌没有帮助.
或者我应该为patch.exe添加一个清单,告诉系统不要试图提升这个?这会起作用,如果是这样,你怎么做出这样的表现?
非常感谢,到目前为止,我一直在墙上撞了一个小时.