我有这个应用程序,我应该BitSet大量使用类,并逐位写入文件.我知道我不能将位写入文件,所以首先我将BitSet对象转换为字节数组并写为字节数组.但问题是,因为BitSet类索引right to left,当我将BitSet对象转换为字节数组并写入文件时,它会向后写入.
例如,这是我的BitSet对象:
10100100
Run Code Online (Sandbox Code Playgroud)
和BitSet.get(0)给出false,BitSet.get(7)给出true.我想把它写成文件,如:
00100101
Run Code Online (Sandbox Code Playgroud)
所以第一位为0,最后一位为1.
我的转换方法:
public static byte[] toByteArray(BitSet bits)
{
byte[] bytes = new byte[(bits.length() + 7) / 8];
for (int i = 0; i < bits.length(); i++) {
if (bits.get(i)) {
bytes[bytes.length - i / 8 - 1] |= 1 << (i % 8);
}
}
return bytes;
}
Run Code Online (Sandbox Code Playgroud)
我的写法:
FileOutputStream fos = new FileOutputStream(filePath);
fos.write(BitOperations.toByteArray(cBitSet));
fos.close();
Run Code Online (Sandbox Code Playgroud)
这是打算像这样还是我做错了什么?谢谢.
当写调用返回时,数据被复制到由内核管理的某个页面上.该页面可以包含来自多个进程的写入.因此,当其中一个应用程序发出fsync调用时,这会导致刷新整个页面,这也意味着刷新其他应用程序数据,但是调用fsync的进程会产生成本.它是否正确?
我无法理解在Hibernate中使用@ManyToAny注释.在哪种情况下应该使用它?我用谷歌搜索了,但几个网站上的解释只是在我的头上反弹了......
有人能用一个简单的例子来解释吗?与@ManyToMany和@ManyToOne有什么不同?
我的Web框架自动将我的jQuery脚本更新为当前的最新版本1.9.
现在我的全部:
$(".myclass").live("click", function() {...
Run Code Online (Sandbox Code Playgroud)
不再工作了.我主要使用它与一些ajax调用,在我的页面中填充html.
我会知道如何在上一版本中替换此功能.一位朋友告诉我使用"on"代替,但"on"仍然固定在同一个元素上.
解释,在这个例子中(没有ajax),我使用"+"图标来显示"ul li list".
$(".closed").live('click', function(){
$("#ul_list_"+$(this).attr('id')).addClass("displayed").removeClass("hidden").show();
$(this).addClass("openned").removeClass('closed');
$(this).html('<i class="icon-minus"></i>');
});
$(".openned").live('click', function(){
$("#ul_list_"+$(this).attr('id')).addClass("hidden").removeClass("displayed").hide();
$(this).addClass("closed").removeClass('openned');
$(this).html('<i class="icon-plus"></i>');
});
Run Code Online (Sandbox Code Playgroud)
(我知道脚本不是最优化的,但它确实有效.我使用类来打开或关闭我的列表.如果访问者没有启用JS,则不会隐藏任何内容,所有折叠列表都会打开)
笔记:
我有以下SQL(我删除了一些selesct fi:
SELECT node_revisions.title AS 'Task',
node_revisions.body AS 'Description',
Date_format(field_due_date_value, '%e/%c/%Y') AS 'Due Date',
users.name AS 'User Name',
(SELECT GROUP_CONCAT(Concat(CHAR(10),Concat_ws( ' - ', name, From_unixtime( TIMESTAMP,
'%e/%c/%Y' )),CHAR(10),COMMENT))
FROM comments
WHERE comments.nid = content_type_task.nid) AS 'Comments'
FROM content_type_task
INNER JOIN users
ON content_type_task.field_assigned_to_uid = users.uid
INNER JOIN node_revisions
ON content_type_task.vid = node_revisions.vid
ORDER BY content_type_task.nid DESC
Run Code Online (Sandbox Code Playgroud)
这将撤回我的所有任务以及与任务相关的所有注释.我遇到的问题是评论字段; 使用*GROUP_CONCAT*创建,正在截断输出.我不知道为什么,我不知道如何克服这一点.(它似乎是341个字符)
我们的应用程序和服务使用了很多配置,其中大部分配置目前在java代码中都是硬编码的,并且分布在很多类中.显然,这需要改变,我们希望将其集中在一个地方,并且应该由其中一个服务(比如ConfigurationService)检索和公开,这也包括为其客户端缓存配置以获得更好的性能.我们还需要为长时间运行的应用程序动态重新加载配置,并避免重新启动.我想就我应该用于此目的的存储类型得到一些评论 -
无需构建数据.它可以是一个简单的键值对,也可以是多键,单值对.以下是配置的一些随机示例 -
基本上,形成键的参数的集合和类型不是固定的,这给了我一个提示,即这种配置不是真正的结构.整个配置的量不会太大.与读取相比,写入很少.
数据库(RDBMS/NoSQL) - 使用数据库表的优点可能是它提供的安全性和备份.由于这看起来不像关系数据,我会考虑使用NoSQL解决方案.我个人并没有真正使用它们,请告诉我哪一种更适合这种数据.由于可能存在许多不同的键,我们应该能够选择精确的键(某种索引).数据库使用会引入延迟,但可以构建有效的缓存来克服这个问题(因为对配置的写入不会太多).数据更容易查询.
文件(XML或其他平面文件) - 我们可以使用这些文件保持简单.缓存也可用于文件的情况.只要整个配置可以导入内存(RAM),这也是一个选项(必须实现选择性高速缓存失效).文件提供版本控制,必须查看权限/安全性.如果XML文件变大,尤其会变得更加混乱.如果我们使用文件,数据可能不容易查询.
假设动态重新加载和缓存失效是分开实现的,哪个应该是更好的存储解决方案?这里应该考虑哪些其他因素?
如果要使用文件来存储此类配置,那么这些用例的文件格式有哪些?
注意:我在SO上提出了类似的问题,但可能没有像我应该的那样清楚地构建问题,所以创建了一个新问题,而不是进行大量编辑.
如果我有这样的mongodb集合users:
{
"_id": 1,
"name": {
"first" : "John",
"last" :"Backus"
},
}
Run Code Online (Sandbox Code Playgroud)
如何在name.first不提供_id或任何其他参考的情况下从中检索.另外,是否可以只拉动`name ^可以给我嵌入键的数组(在这种情况下是第一个也是最后一个)?怎么办?
db.users.find({"name.first"}) 没有为我工作,我有一个:
SyntaxError"missing:属性id(shell)之后:1
我正在尝试在MongoDB中存储配置.我希望文档架构是动态的,以便在集合中存储不同类型的配置.配置可能不仅仅包含简单的字符串键值对.使用spring-data-mongodb时,我发现我需要定义一个通常映射到mongodb的类.因此,当我需要向集合添加更多配置时,我需要对类进行更改.我真的不想这样做,因为我希望能够在没有代码更改的情况下修改配置(理想情况下无需重新启动长时间运行的应用程序).而且,我最终存储的是配置,应该由不同的服务使用,所以我不能真正有一个明确定义的架构.相反,我希望服务从商店中提取配置(即提供密钥,获取值).这让我怀疑spring-data-mongodb是这种用例的正确选择.我的用例有没有明显的解决方案或替代方案?
提前致谢.
从android学习谷歌驱动快速入门后.我下载了他们的例子并得到了这个错误:
01-13 03:38:39.039: E/AndroidRuntime(29967): java.lang.RuntimeException: Unable to get provider com.example.android.notepad.NotePadProvider: java.lang.ClassNotFoundException: com.example.android.notepad.NotePadProvider in loader dalvik.system.PathClassLoader[/data/app/com.example.android.notepad-1.apk]
01-13 03:38:39.039: E/AndroidRuntime(29967): at android.app.ActivityThread.installProvider(ActivityThread.java:3561)
01-13 03:38:39.039: E/AndroidRuntime(29967): at android.app.ActivityThread.installContentProviders(ActivityThread.java:3313)
01-13 03:38:39.039: E/AndroidRuntime(29967): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3269)
01-13 03:38:39.039: E/AndroidRuntime(29967): at android.app.ActivityThread.access$2200(ActivityThread.java:117)
01-13 03:38:39.039: E/AndroidRuntime(29967): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:973)
01-13 03:38:39.039: E/AndroidRuntime(29967): at android.os.Handler.dispatchMessage(Handler.java:99)
01-13 03:38:39.039: E/AndroidRuntime(29967): at android.os.Looper.loop(Looper.java:130)
01-13 03:38:39.039: E/AndroidRuntime(29967): at android.app.ActivityThread.main(ActivityThread.java:3687)
01-13 03:38:39.039: E/AndroidRuntime(29967): at java.lang.reflect.Method.invokeNative(Native Method)
01-13 03:38:39.039: E/AndroidRuntime(29967): at java.lang.reflect.Method.invoke(Method.java:507)
01-13 03:38:39.039: E/AndroidRuntime(29967): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
01-13 03:38:39.039: E/AndroidRuntime(29967): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
01-13 03:38:39.039: E/AndroidRuntime(29967): at …Run Code Online (Sandbox Code Playgroud) java ×3
mongodb ×2
android ×1
annotations ×1
bitset ×1
bytearray ×1
database ×1
hibernate ×1
javascript ×1
jquery ×1
jquery-1.8 ×1
jquery-1.9 ×1
linux ×1
mysql ×1
nosql ×1
redis ×1
sql ×1
storage ×1