在Java中,是否有任何方法从文件中读取特定的行? 例如,读取第32行或任何其他行号。
我有一个testing,运行在我的发展MacBook Pro的伟大,但未能在持续集成TeamCity服务器运行。 错误如下: java.security.InvalidKeyException: Illegal key size at javax.crypto.Cipher.a(DashoA13*..) at javax.crypto.Cipher.init(DashoA13*..) at javax.crypto.Cipher.init(DashoA13*..) 开发盒和TeamCity都使用Java 1.6,我使用BouncyCastle库来满足特殊的AESencryption需求。 代码如下: private byte[] aesEncryptedInfo(String info) throws UnsupportedEncodingException, IllegalBlockSizeException, BadPaddingException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidParameterSpecException, InvalidAlgorithmParameterException, NoSuchProviderException { Security.addProvider(new BouncyCastleProvider()); SecretKey secret = new SecretKeySpec(CUSTOMLONGSECRETKEY.substring(0, 32).getBytes(), "AES"); Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding", "BC"); cipher.init(Cipher.ENCRYPT_MODE, secret, new IvParameterSpec(VECTOR_SECRET_KEY.getBytes())); return cipher.doFinal(info.getBytes("UTF-8")); } UPDATE 看起来像根据选定的答案,我必须修改我的TeamCity安装的东西,它可能会影响一些用户安装 – […]
继javadoc之后,我试图缩放一个BufferedImage而没有成功,这里是我的代码: BufferedImage image = MatrixToImageWriter.getBufferedImage(encoded); Graphics2D grph = image.createGraphics(); grph.scale(2.0, 2.0); grph.dispose(); 我不明白为什么它不工作,有什么帮助?
在什么情况下应该在应用程序上捕获java.lang.Error ?
这应该很简单。 如果我有这样一个string: ../Test?/sample*.txt 那么什么是普遍接受的方式来获得匹配这种模式的文件列表? (例如它应该匹配../Test1/sample22b.txt和../Test4/sample-spiffy.txt但不是../Test3/sample2.blah或../Test44/sample2.txt ) 我已经看了org.apache.commons.io.filefilter.WildcardFileFilter ,它似乎是正确的野兽,但我不知道如何使用它来查找相对目录path中的文件。 我想我可以看ant的源代码,因为它使用通配符语法,但我必须在这里丢失一些非常明显的东西。 ( 编辑 :上面的例子只是一个示例,我正在寻找在运行时parsing包含通配符的通用path的方法,我根据mmyers的build议想出了办法,但这样做很烦人,更不用说了java JRE似乎从一个参数中自动parsingmain(String []参数)中的简单通配符来“保存”我的时间和麻烦…我很高兴我没有非文件参数混合。)
我想知道为什么在Java构造函数不被inheritance? 你知道什么时候你有这样的一个class级: public class Super { public Super(ServiceA serviceA, ServiceB serviceB, ServiceC serviceC){ this.serviceA = serviceA; //etc } } 后来当你从Superinheritance时,java会抱怨没有定义默认的构造函数。 解决scheme显然是这样的: public class Son extends Super{ public Son(ServiceA serviceA, ServiceB serviceB, ServiceC serviceC){ super(serviceA,serviceB,serviceC); } } 这个代码是重复的,而不是干燥和无用的(恕我直言)…所以再次提出的问题: 为什么java不支持构造函数inheritance? 不允许这种inheritance有什么好处吗?
我正在寻找一个可以提供超时的ExecutorService实现。 如果提交给ExecutorService的任务的运行时间超过了超时时间,则会中断该任务。 实现这样一个野兽并不是一件困难的事情,但是我想知道是否有人知道现有的实现。 以下是我在下面的一些讨论中提出的。 任何意见? import java.util.List; import java.util.concurrent.*; public class TimeoutThreadPoolExecutor extends ThreadPoolExecutor { private final long timeout; private final TimeUnit timeoutUnit; private final ScheduledExecutorService timeoutExecutor = Executors.newSingleThreadScheduledExecutor(); private final ConcurrentMap<Runnable, ScheduledFuture> runningTasks = new ConcurrentHashMap<Runnable, ScheduledFuture>(); public TimeoutThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, long timeout, TimeUnit timeoutUnit) { super(corePoolSize, […]
在Hibernate 3中,是否有办法在HQL中完成以下MySQL限制的等价物? select * from a_table order by a_table_column desc limit 0, 20; 如果可能,我不想使用setMaxResults。 这在Hibernate / HQL的旧版本中是绝对可能的,但似乎已经消失了。
我有一个简单的Java代码,它的结构看起来类似于这个: abstract public class BaseClass { String someString; public BaseClass(String someString) { this.someString = someString; } abstract public String getName(); } public class ACSubClass extends BaseClass { public ASubClass(String someString) { super(someString); } public String getName() { return "name value for ASubClass"; } } 我将有不lessBaseClass子类,每个都以自己的方式实现getName()方法( 模板方法模式 )。 这工作得很好,但我不喜欢在子类中有冗余的构造函数。 input更多,难以维护。 如果我要改变BaseClass构造函数的方法签名,我将不得不改变所有的子类。 当我从子类中移除构造函数时,我得到这个编译时错误: Implicit super constructor BaseClass() […]
我们大量地使用序列化,并且不得不在每个我们使用的对象上指定Serializable标签都是一种负担。 尤其是当我们不能真正改变的第三方课堂。 问题是:由于Serializable是一个空接口,并且一旦添加了implements Serializable ,Java就提供了健壮的序列implements Serializable – 为什么它们没有使所有的东西都可序列化呢?就是这样呢? 我错过了什么?