我正在尝试从位于 sftp 服务器上的目录中提取最新文件。我现在的做法或多或少是:
public FileObject getLatestFile(String directory) throws FileSystemException {
FileObject fo = fsManager.resolveFile(this.host+directory, fsOptions);
FileObject latestFile = null;
long max = 0;
fo.getContent().
for (FileObject fob : fo.getChildren()){
if (fob.getContent().getLastModifiedTime() > max) {
max = fob.getContent().getLastModifiedTime();
latestFile = fob;
}
}
return latestFile;
}
Run Code Online (Sandbox Code Playgroud)
这种方法的问题在于,每次调用该方法时,我基本上都会下载给定目录中的每个文件。
有没有更好的方法来做到这一点?
我想知道那里是否有任何重大问题.在我的项目中升级jar后,编译完所有内容.我没有在发行说明中看到任何让我不寒而栗的东西,但我想仔细检查一下.
java upgrade backwards-compatibility apache-commons apache-commons-dbcp
我目前正在开发打击乐教程程序。该程序要求我可以确定正在播放什么鼓,为此我将分析鼓录音的频率并查看频率是否在给定范围内。
到目前为止,我一直在为 FFT 使用 Apache math commons 实现(http://commons.apache.org/math/),但我的问题是,一旦我执行了 FFT,我如何使用结果数组来计算频率包含在信号中?
注意:我也尝试过使用自相关进行试验,但它似乎不适用于来自架子鼓的样本
任何有关如何确定正在击中的鼓的帮助或替代建议将不胜感激
编辑:自从写这篇文章以来,我发现了一个很棒的在线课程,关于在 Java 中实现 FFT 以进行时间/频率变换在 Java 中的频谱分析
java signal-processing fft apache-commons frequency-analysis
我知道如何将chunkwise从一个复制InputStream到一个OutputStream.
我知道如何获得byte[]一个InputStream.
但是如何一步到位呢?是否有一个OutputStream可以通过管道传输并缓冲所有写入的字节,以便它可以在结尾返回一个byte []?
我需要一些ByteArrayOutputStream可以用管道输送的东西.(例如,到FileOutputStream)
或者我需要一些MultiOutputStream可以转发到多个OutputStream的东西.使用Guava和/或Apache Commons的解决方案是首选.:)
我在 Java 应用程序中使用公共日志记录,并且想要记录堆栈跟踪中的异常。
catch( Exception exception ) {
logger.error( "FailedCreateActivityFunction Exception Occured : " , exception );
throw new EngineException( getMessage( ERROR_FailedCreateActivityFunction, FunctionName ), exception );
}
Run Code Online (Sandbox Code Playgroud)
这会抛出异常两次吗?如果是的话如何解决?
使用+ 异常而不是, 异常以这种方式使用它有什么区别
logger.error( "FailedCreateActivityFunction Exception Occured : " + exception );
Run Code Online (Sandbox Code Playgroud) 以下是我的 pojo :
package anto.com.poc;
public class VerifyPaymentRO {
private String mihpayid;
private String request_id;
private String bank_ref_num;
private String amt;
private String disc;
private String mode;
private String PG_TYPE;
private String card_no;
private String name_on_card;
private String udf2;
private String addedon;
private String status;
private String unmappedstatus;
private String Merchant_UTR;
private String Settled_At;
public String getMihpayid() {
return mihpayid;
}
public void setMihpayid(String mihpayid) {
this.mihpayid = mihpayid;
}
public String getRequest_id() {
return request_id;
}
public void setRequest_id(String …Run Code Online (Sandbox Code Playgroud) 我在使用 commons-net FTPClient 时遇到问题。如果我从我的 ftp 服务器上使用retrieveFileStream() 下载文件,它可以工作,但我得到的结果是“150 Opening BINARY mode data connection for ...”。如果我调用 noop() 我会得到“226 传输完成”结果。对于接下来的每个操作,我都会得到前一个操作的结果。
我发现,FTPClient 读取结果直到行尾,如果有两个结果行(如在retrieveFileStream()之后),我会在下一个命令之后得到第二个结果行。我通过重写 FTPClient.retrieveFileStream() 做了一个解决方法,如下所示:
public static void main(String[] args){
try {
MyFTPClient ftpClient = new MyFTPClient();
try {
ftpClient.connect(ftphost, 21);
if(!ftpClient.login( ftpuser, ftppassword )){
throw new RuntimeException(ftpClient.getReplyString());
}
if(!ftpClient.changeWorkingDirectory("in")){
throw new RuntimeException(ftpClient.getReplyString());
}
FTPFile[] files = ftpClient.listFiles();
for(FTPFile file: files){
if(file.getName().startsWith(FILENAME) && (file.getType() == FTPFile.FILE_TYPE)){
InputStream in = ftpClient.retrieveFileStream(file.getName());
CsvFile csvFile = new CsvFile(in, "ISO-8859-1", ';', "yyyyMMdd", "#.00", Locale.US, false);
in.close();
in = …Run Code Online (Sandbox Code Playgroud) 我将此问题通过电子邮件发送至 dev@commons.apache.org,但尚未得到答复。
我正在尝试将 maven 依赖项添加到最新的 commons-collections 包中,我从站点看到的是 4.0 ( http://commons.apache.org/proper/commons-collections/javadocs/api-release/index.html)。
我从 maven central 看到它的版本是 20040616。这看起来像是日期而不是版本号。但是,jar 的内容似乎与http://commons.apache.org/proper/commons-collections/javadocs/api-release/index.html 上的 API 相匹配。我想确认这是否是我应该添加的实际 4.0 依赖项。
公共收藏 公共收藏 20040616
谢谢,
文克
我有一种情况,许多键指向一个值.这种情况来自我正在实施的服务定位器模式 -
因此,我需要在用户请求任何匹配键时检索单个值.
从某种意义上说,我需要与Guava相反的MultiMap.
我正在寻找最优化的解决方案,因为我的密钥非常相似,虽然对于特定值是唯一的,但我不确定使用像HashMap这样的通用Map实现是否足以处理这种情况.
例如以下所有签名
==============
_org.appops.server.core.service.mocks.MockTestService_testOperationThree _org.appops.server.core.service.mocks.MockTestService_getService _org.appops.server.core.service.mocks.MockTestService_start _org.appops.server.core.service.mocks .MockTestService_testOperationTwo_String_int _org.appops.server.core.service.mocks.MockTestService_getName _org.appops.server.core.service.mocks.MockTestService_shutdown _org.appops.server.core.service.mocks.MockTestService_testOperationOne_String
=======
指向一个类,即org.appops.server.core.service.mocks.MockTestServiceImpl,我期待着几百个这样的类(值)和几千个这样的类似的签名(密钥)的.
如果没有优化的方法,我总是可以使用HashMap,每个键组都有复制值,我想避免使用.
理想情况下,我想使用Guava的ready实用程序.
我在尝试使用远程界面保存搜索结果时收到以下错误SearchFacade.java
"Failed to marshal EJB parameters"
Run Code Online (Sandbox Code Playgroud)
无法将 org.apache.commons.collections.FastHashMap 字段 org.apache.commons.validator.Field.hMsgs 设置为 org.apache.commons.collections.FastHashMap at sun.reflect.UnsafeFieldAccessorImpl. throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:146)
我正在使用 struts 1.1、EJB 2.1,使用 xdoclet 1.2.3 jar 来生成依赖文件。(这是不可避免的使用),其中我的 Local、Home 接口是使用 Xdoclet 生成的。
我还在我的项目中使用 Java 6、Jboss EAP 6.1 Alpha。
注意:相同的代码在 Jboss 4.0 中运行时工作正常
所以想知道我的远程调用是否正确。
欢迎任何帮助。
错误日志
java.lang.RuntimeException: JBAS014154: 无法在 org.jboss.as.ejb3.remote.LocalEjbReceiver.clone(LocalEjbReceiver.java:270) 处封送 EJB 参数在 org.jboss.as.ejb3.remote.LocalEjbReceiver.clone(LocalEjbReceiver) .java:259) 在 org.jboss.as.ejb3.remote.LocalEjbReceiver.processInitation(LocalEjbReceiver.java:170) 在 org.jboss.ejb.client.EJBClientInvocal.sendRequest(EJBClientInvocalContext.java:181) 在 org.jboss. ejb.client.EJBHomeCreateInterceptor.handleInitation(EJBHomeCreateInterceptor.java:79)在 org.jboss.ejb.client.EJBClientInvocal.sendRequest(EJBClientInvocalContext.java:183)在 org.jboss.ejb.client.TransactionInterceptor.handleInitation(TransactionInterceptor.java: 42) 在 org.jboss.ejb.client.EJBClientInvocalContext.sendRequest(EJBClientInvocalContext.java:183) 在 org.jboss.ejb.client.ReceiverInterceptor.handleInvocal(ReceiverInterceptor.java:125) 在 org.jboss.ejb.client.EJBClientInspirationContext .sendRequest(EJBClientInvocalContext.java:183) 位于 org.jboss.ejb.client.EJBInvocalHandler.doInvoke(EJBInvocalHandler.java:177) 位于 org.jboss.ejb.client.EJBInvocalHandler.doInvoke(EJBInvocalHandler.java:161) 处。位于 com.web.history.SearchFormDelegate.saveSearch(SearchFormDelegate.java:177) 位于 com.history.SaveSearchAction.createNewSavedSearch 的 $Proxy25.saveSearch(未知来源) 处的 jboss.ejb.client.EJBInitationHandler.invoke(EJBInvocalHandler.java:124) (SaveSearchAction.java:109)在com.history.SaveSearchAction.executeSynchronized(SaveSearchAction.java:296)在com.dispatch.SynchronizedAction.execute(SynchronizedAction.java:206)在org.apache.struts.action.RequestProcessor.processActionPerform( …