【发布时间】:2016-08-03 18:09:40
【问题描述】:
我的代码有点问题。 我试图将代码从 python 重写为 java。
在 Python 中是:
data = bytearray(filesize)
f.readinto(data)
然后我试着用java写成这样:
try {
data = Files.readAllBytes(file.toPath());
} catch (IOException ex) {
Logger.getLogger(Encrypter.class.getName()).log(Level.SEVERE, null, ex);
}
for(int index : data) {
data[index] = (byte) ((byte) Math.pow(data[index], genfun((fileSize), index)) & 0xFF);
}
一切对我来说似乎都很好,但是当我编译它并且有一个 java.lang.ArrayIndexOutOfBoundsException: -77
有没有人有线索或可以更好地重写它?
【问题讨论】:
-
for(int index : data)为什么你认为你可以通过这个来获取索引?这是错误的。请改用常规的for循环。 -
@Tom 这是一种非常粗鲁的方式来告诉他他使用了不正确的语法。 @czaro112112 使用
for (int i = 0; i < data.length; i++)格式迭代递增索引。您当前的语法会迭代data的值 -
@Kon 你的意思是 “这是一种非常粗鲁的方式,告诉他他使用了明显不正确的语法,只要花几分钟的研究就知道了。”?我真的很难理解为什么很多新用户不研究使用过的 API 或语法。令人失望。
标签: java python arrays exception byte