Skip to content

Commit 4cb3d29

Browse files
committed
Reuse RandomAccessFiles
1 parent 2365a1e commit 4cb3d29

1 file changed

Lines changed: 4 additions & 14 deletions

File tree

src/main/java/org/apache/commons/io/filefilter/MagicNumberFileFilter.java

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@
3030
import java.util.Arrays;
3131
import java.util.Objects;
3232

33-
import org.apache.commons.io.IOUtils;
3433
import org.apache.commons.io.RandomAccessFileMode;
34+
import org.apache.commons.io.RandomAccessFiles;
3535

3636
/**
3737
* <p>
@@ -258,22 +258,12 @@ public MagicNumberFileFilter(final String magicNumber, final long offset) {
258258
@Override
259259
public boolean accept(final File file) {
260260
if (file != null && file.isFile() && file.canRead()) {
261-
try {
262-
try (RandomAccessFile randomAccessFile = RandomAccessFileMode.READ_ONLY.create(file)) {
263-
final byte[] fileBytes = IOUtils.byteArray(this.magicNumbers.length);
264-
randomAccessFile.seek(byteOffset);
265-
final int read = randomAccessFile.read(fileBytes);
266-
if (read != magicNumbers.length) {
267-
return false;
268-
}
269-
return Arrays.equals(this.magicNumbers, fileBytes);
270-
}
271-
}
272-
catch (final IOException ignored) {
261+
try (RandomAccessFile randomAccessFile = RandomAccessFileMode.READ_ONLY.create(file)) {
262+
return Arrays.equals(magicNumbers, RandomAccessFiles.read(randomAccessFile, byteOffset, magicNumbers.length));
263+
} catch (final IOException ignored) {
273264
// Do nothing, fall through and do not accept file
274265
}
275266
}
276-
277267
return false;
278268
}
279269

0 commit comments

Comments
 (0)