小编ata*_*lor的帖子

如何在Java中计算"time ago"?

在Ruby on Rails中,有一个功能允许你采取任何日期并打印出"很久以前"的样子.

例如:

8 minutes ago
8 hours ago
8 days ago
8 months ago
8 years ago
Run Code Online (Sandbox Code Playgroud)

在Java中有一种简单的方法吗?

java time datediff date relative-time-span

122
推荐指数
12
解决办法
9万
查看次数

BitSet与整数/长整数

如果我有一个我想要执行位操作的整数,我该如何将其加载到java.util.BitSet?如何将其转换回int或long?我不太关心BitSet它的大小- 它总是32或64位长.我只是想使用set(),clear(),nextSetBit(),和nextClearBit()方法,而不是位运算符,但我无法找到一个简单的方法来初始化位以数字类型设置.

java bit-manipulation bitset

52
推荐指数
4
解决办法
6万
查看次数

如何在Java中检索/计算X509证书的指纹?

我有一个调用Web服务操作的java客户端,它将证书"thumbprint"作为参数.我相信指纹是某种SHA1哈希值,采用十六进制字符串格式,是cert的公钥,但我不确定.

.NET框架似乎包含一种获取此值的简单方法(X509Certificate2.Thumbprint属性).在Windows中查看.cer文件的属性还会显示指纹,如下所示:

a6 9c fd b0 58 0d a4 ee ae 9a 47 75 24 c3 0b 9f 5d b6 1c 77
Run Code Online (Sandbox Code Playgroud)

因此,我的问题是:如果我有一个java.security.cert.X509Certificate的实例,有人知道如何在Java中检索或计算这个指纹字符串吗?

java certificate

38
推荐指数
3
解决办法
5万
查看次数

从BaseHTTPHandler解析http GET和POST参数?

来自BaseHTTPServer模块的BaseHTTPHandler似乎没有提供任何方便的方式来访问http请求参数.解析路径中的GET参数和请求体中的POST参数的最佳方法是什么?

现在,我正在使用它进行GET:

def do_GET(self):
    parsed_path = urlparse.urlparse(self.path)
    try:
        params = dict([p.split('=') for p in parsed_path[4].split('&')])
    except:
        params = {}
Run Code Online (Sandbox Code Playgroud)

这适用于大多数情况,但我想要一些更健壮的东西来正确处理编码和空参数等情况.理想情况下,我想要一些小而独立的东西,而不是一个完整的Web框架.

python http basehttpserver

35
推荐指数
3
解决办法
6万
查看次数

Can BufferedReader(Java)可以在不移动指针的情况下读取下一行吗?


我试图在不移动指针的情况下阅读下一行,这可能吗?

BufferedReader buf = new BufferedReader(new InputStreamReader(fileIS));

while ((readString = buf.readLine()) != null) {
}
Run Code Online (Sandbox Code Playgroud)

虽然我会想要逐行阅读,但我需要写下当前行的下一行.

有可能的?

我的文件包含Http请求数据,第一行是GET请求,
在第二行是主机名,我需要在GET之前拉出主机才能将它们连接在一起.
主持人/ + GET网址,

GET /logos/2011/family10-hp.jpg HTTP/1.1  
Host: www.google.com  
Accept-Encoding: gzip  
Run Code Online (Sandbox Code Playgroud)

谢谢.

java

22
推荐指数
2
解决办法
3万
查看次数

如何设置InputStream内容长度

我正在将文件上传到Amazon S3存储桶.文件正在上传,但我得到以下警告.

警告:没有为流数据指定内容长度.流内容将缓冲在内存中,并可能导致内存不足错误.

所以我在代码中添加了以下行

metaData.setContentLength(IOUtils.toByteArray(input).length);
Run Code Online (Sandbox Code Playgroud)

但后来我得到了以下信息.我甚至都不知道这是警告还是什么.

数据读取的长度与预期的长度不同:dataLength = 0; expectedLength = 111992; includeSkipped = FALSE; in.getClass()= class sun.net.httpserver.FixedLengthInputStream; markedSupported = FALSE; 标记= 0; resetSinceLastMarked = FALSE; markCount = 0; resetCount = 0

如何将contentLength设置为InputSteam的metaData?任何帮助将不胜感激.

metadata inputstream amazon-s3 amazon-web-services

20
推荐指数
2
解决办法
2万
查看次数

extjs - 如何从另一个控制器或闭包中正确调用控制器方法

我是extjs的新手,我正在使用MVC架构.

当我的应用程序引用控制器的方法时,我这样做(in MyApp.Application):

Mb.app.getController('Main').myMethod();
Run Code Online (Sandbox Code Playgroud)

它已经很久了,但我认为这是可行的方法.

当一个控制器在一个闭包中调用它自己的方法时,我被引导使用这个代码(在MyApp.controller.Main:

controllerMethodOne: function(){
    Ext.Ajax.request({
        url: ...,
        params: ...,
        success: (function(response){
            list = Ext.JSON.decode(response.responseText);
            list.forEach(function(item){
                storeMenu.add(
                    Ext.create('Ext.menu.Item', {
                        text: item.text,
                        handler: function(el){MyApp.app.getController('Main').controllerMethodTwo()}
                    })
                )
            })
        })
    })
},
Run Code Online (Sandbox Code Playgroud)

我引用了方法,MyApp.app.getController('Main').controllerMethodTwo()因为this没有引用闭包中的控制器对象,因此this..controllerMethodTwo()不起作用.

我发现这完全令人费解,我希望有人有想法解决这个MyApp.app.getController问题.

更新

感谢所有的建议,我可以优化我的代码并提出:

// in my controller
    mixins: ['Mb.controller.mixin.StoreMenu'],
    // I use that style of menus in two controllers thats why I use a mixin
    init: function() {
        this.control({
            '#vg_storeMenu menuitem': {
                click: this.onStoreMenuClicked
            }
        }) …
Run Code Online (Sandbox Code Playgroud)

closures controller extjs extjs4.2

15
推荐指数
1
解决办法
4万
查看次数

让groovy脚本从像葡萄这样的文件系统中抓取一个罐子

Grape似乎可以很好地为你的类路径添加jar.它还可以执行很多其他操作,例如提取和依赖关系管理.例如

#!/home/robert/bin/groovy

import org.apache.commons.lang.StringUtils

@Grab(group='commons-lang', module='commons-lang', version='2.4')

def strings = ['Hello', 'Groovy', 'AVeryLongWord!', 'A simple sentence']
strings.each { String aString ->
    println "$aString: ${StringUtils.abbreviate(aString,10)}"
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,如果我的文件系统上有一个jar,我想动态添加到文件系统,那么我不得不求助于一个更加丑陋的解决方案.

#!/home/robert/bin/groovy

def loader = this.class.classLoader.rootLoader
loader.addURL(new File("/home/robert/somejars/arithmetic-1.1.jar").toURI().toURL())

// can't use traditional package import
arithmeticMainClass = Class.forName("org.scharp.arithmetic.Main")

println "42 - 23 = " + arithmeticMainClass.subtract(42, 23)

// can't use "new" operator
myArithmeticObject = arithmeticMainClass.newInstance()
Run Code Online (Sandbox Code Playgroud)

有没有办法让葡萄从文件系统中抓取一个罐子?如果没有,我可以以某种方式复制葡萄在groovy/java中做的事情吗?

我希望这个解决方案适用于可由许多用户和许多不兼容的jar运行的脚本,因此将jar添加到公共目录(如〜/ .groovy/lib /)将不起作用.

我可以为本地的jar库创建一个本地maven存储库,但这似乎有些过分.

groovy jar ruby-grape

14
推荐指数
2
解决办法
8825
查看次数

Python IMAP:=?utf-8?Q?在主题字符串中

我正在显示新的电子邮件IMAP,一切看起来都很好,除了一个邮件主题显示为:

=?utf-8?Q?Subject?=

我该如何解决?

python email mime imap character-encoding

14
推荐指数
4
解决办法
1万
查看次数

运算符中的Groovy如何工作?

在不同的情况下,Groovy"in"运算符似乎意味着不同的东西.有时x in y意味着y.contains(x),有时它似乎打电话y.isCase(x).

Groovy如何知道要调用哪一个?是否有一个特定的类或一组类Groovy知道哪些使用.contains方法?或者是由于某个对象上存在方法而触发的行为?是否有任何情况下in运算符完全变为其他东西?

groovy operators in-operator

13
推荐指数
2
解决办法
1万
查看次数