标签: apache-commons

通过Java lib Apache Commons上传文件的简明示例

[编辑]我删除了我的错综复杂且严重错误的问题,这样就不会影响下面非常简洁和正确的答案.鉴于(令人惊讶的)难以找到一个执行这项令人难以置信的常见任务的在线示例,我希望Yoni能够为他的回应获得更多优势.

所以...问题简而言之......

如何使用Apache.Commons将文件上载到某个目标.我在Android中使用它并上传到PHP脚本,但显然它可以在任何Java程序和任何基于HTTP的侦听器中工作.

java android file-upload apache-commons

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

Java布尔CLI选项

我正在使用Apache Commons CLI库进行命令行解析.它适用于String值选项,但我不确定如何干净地处理布尔值的命令行标志.我试过这个:

    CommandLineParser parser = new GnuParser();
    Options options = new Options();
    options.addOption(new Option("parseOnly", "Only parse"));
    CommandLine cl = parser.parse( options, args );

    if( cl.hasOption( "parseOnly" ) )
    PARSE_ONLY = (Boolean) cl.getParsedOptionValue( "parseOnly" );
Run Code Online (Sandbox Code Playgroud)

但是这NullPointerException在文件行上失败了,因为cl.getParsedOptionValue()返回null并且无法转换为Boolean.

cl.hasOption( "parseOnly" )返回true或false,但是从文档中不清楚这意味着什么 - 它是否意味着用户指定它并且它可能是true还是false?或者它是否意味着标志被激活?如果你想让一个标志默认为true,并让用户将其关闭(如其他getopt解析器中的--noParseOnly),该怎么办?

我会感谢人们提出的任何建议,包括RTFM - 我确信这是一个很好的基础.谢谢.

java getopt apache-commons

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

Apache Commons StringEscapeUtil中的错误?

刚开始使用Apache Commons StringEscapeUtils.

根据http://www.w3schools.com/tags/ref_entities.asp,Ö应该对应Ö.然而,

System.out.println(StringEscapeUtils.unescapeHtml4("Ö"));
Run Code Online (Sandbox Code Playgroud)

版画

×
Run Code Online (Sandbox Code Playgroud)

这是一个错误吗?或者我错过了什么?

html java apache-commons

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

WordUtils.capitalizeFully I18N?

我想使用WordUtils.capitalizeFully但不确定它对其他语言的作用.哎呀,我甚至不确定中国人是否有大/小写.我们还使用瑞典语,德语和俄语.

有人尝试过吗?

java internationalization apache-commons

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

如何将byte []转换为String而不会在Android中出现outofmemory错误?

我开发了一个Android应用程序,它将以压缩格式消耗大量数据.我曾经解压缩它,当我解析解压缩文件时,它会显示outofmemory错误,因为堆大小增加到125MB.我正在使用apache commons.io来获取byte [] b而我正在给String s = new String(b);我尝试了Stringbuilder但我无法获得该逻辑.有没有其他方法可以安全地将byte []转换为android中的String?

string android bytearray apache-commons

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

toStringBuilder导致问题

我正在运行多线程导入,运行大约1-2个小时.并在导入之前,将数据放入表中.我正在查

if(debug.isEnabled())
 logger.debug("Object="+MyObject);
Run Code Online (Sandbox Code Playgroud)

其中MyObject使用ToStringBuildertoString方法.

java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.util.Arrays.copyOfRange(Arrays.java:2694)
        at java.lang.String.<init>(String.java:203)
        at java.lang.StringBuffer.toString(StringBuffer.java:561)
        at org.apache.commons.lang3.builder.ToStringBuilder.toString(ToStringBuilder.java:1063)
Run Code Online (Sandbox Code Playgroud)

我认为toStringBuilder导致了这个问题.我对么?如果是,有什么方法可以解决这个问题?

java apache-commons

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

Java强制转换方法

我不确定这个问题是否属于这里.我编写了以下方法将对象强制转换为特定类型.

private static <T> T cast(Object obj) {
    return (T) (obj);
}
Run Code Online (Sandbox Code Playgroud)

我想知道为什么我在Guava或Apache Commons中找不到这样的方法?我错过了什么吗?

谢谢,

Venk

java apache-commons guava

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

热门通过apache commons-configuration和属性文件获取属性集作为映射

我想好像有可能/由Apache的commons-configuration支持从属性文件中获取一个属性作为映射

到目前为止,我已经通过以下代码段间接地做到了这一点

 Map<String, T> map = new LinkedHashMap<>();
 Configuration subset = config.subset(key);
 if (!subset.isEmpty()) {
     Iterator it = subset.getKeys();
     while (it.hasNext()) {
         String k = (String) it.next();
         //noinspection unchecked
         T v = (T) subset.getProperty(k);
         map.put(k, v);
     }
 }
 return map;
Run Code Online (Sandbox Code Playgroud)

有谁知道比这更直接的方法?

非常感谢你

configuration apache-commons

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

Apache Commons CollectionsUtils.select的Java 8 Lambda替换

我使用Apache Commons lib有以下代码:

public static List<Address> addressesHasType(final List<Address> addresses, final AddressType... types) {
    return (List<Address>) CollectionUtils.select(addresses, new Predicate() {
        @Override
        public boolean evaluate(final Object object) {
            boolean isContains = false;
            for (int i = 0; i < types.length && !isContains; i++) {
                isContains = ((Address) object).getTypes().contains(types[i]);
            }
            return isContains;
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

我试图重构它只使用没有Apache Commons lib的lambda和Java 8,如下所示:

List<Address> addressList = addresses.stream()
    .filter(a -> a.getTypes().contains(types)).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

但这份名单最终变得空洞.我尝试使用findFirst()但它不返回List而是返回Optional对象.

addressList2 = addresses.stream()
    .filter(a -> a.getTypes().contains(types)).findFirst();
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做?

java lambda apache-commons java-8 java-stream

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

使用枚举验证地图的键集的优雅方法?

我有一张地图,我需要用我的枚举来验证地图的键集.我有一个枚举类,如下所示:

  public enum Tag {
    rename, duplicate, process, limit, encode, decode;
  };
Run Code Online (Sandbox Code Playgroud)

现在keyset,map应该包含来自enum的值.如果我的键集包含枚举中没有的值,那么我想抛出IllegalArgumentException枚举中缺少的值.

以下是我的代码:

  public Processor(Map<String, String> tasks) {
    Set<String> keyset = tasks.keySet();
    for (String tag : keyset)
      checkArgument(!EnumUtils.isValidEnum(Tag.class, tag), "unknown tag found '%s'.", tag);
  }
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我正在迭代keyset并进行Preconditions.checkArgument检查.如果它不存在那么就会抛出IllegalArgumentException.我确信抛出的信息可以改进.

我的问题是:与我正在做的相比,有没有更好的方法做同样的事情?我是否必须keyset在for循环中迭代才能进行检查?或者是否有任何一个班轮或任何其他更好的方法来进行此验证?

我使用的是Java7.

java enums apache-commons guava

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