mirror of https://github.com/apache/poi.git
use more nio file support
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1912316 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
4afcb281ce
commit
4b520ff7c5
|
@ -25,13 +25,13 @@ import static org.apache.poi.openxml4j.opc.PackagingURIHelper.RELATIONSHIP_PART_
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.Closeable;
|
import java.io.Closeable;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.FileOutputStream;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.net.URISyntaxException;
|
import java.net.URISyntaxException;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Paths;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
@ -506,7 +506,7 @@ public abstract class OPCPackage implements RelationshipSource, Closeable {
|
||||||
}
|
}
|
||||||
String name = path.substring(path.lastIndexOf(File.separatorChar) + 1);
|
String name = path.substring(path.lastIndexOf(File.separatorChar) + 1);
|
||||||
|
|
||||||
try (FileInputStream is = new FileInputStream(path)) {
|
try (InputStream is = Files.newInputStream(Paths.get(path))) {
|
||||||
addThumbnail(name, is);
|
addThumbnail(name, is);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1483,7 +1483,7 @@ public abstract class OPCPackage implements RelationshipSource, Closeable {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Do the save
|
// Do the save
|
||||||
try (FileOutputStream fos = new FileOutputStream(targetFile)) {
|
try (OutputStream fos = Files.newOutputStream(targetFile.toPath())) {
|
||||||
this.save(fos);
|
this.save(fos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,11 +21,10 @@ import static org.apache.poi.openxml4j.opc.ContentTypes.RELATIONSHIPS_PART;
|
||||||
import static org.apache.poi.openxml4j.opc.internal.ContentTypeManager.CONTENT_TYPES_PART_NAME;
|
import static org.apache.poi.openxml4j.opc.internal.ContentTypeManager.CONTENT_TYPES_PART_NAME;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.FileNotFoundException;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
import java.nio.file.Files;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Enumeration;
|
import java.util.Enumeration;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -179,12 +178,12 @@ public final class ZipPackage extends OPCPackage {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ZipEntrySource openZipEntrySourceStream(File file) throws InvalidOperationException {
|
private static ZipEntrySource openZipEntrySourceStream(File file) throws InvalidOperationException {
|
||||||
final FileInputStream fis;
|
final InputStream fis;
|
||||||
// Acquire a resource that is needed to read the next level of openZipEntrySourceStream
|
// Acquire a resource that is needed to read the next level of openZipEntrySourceStream
|
||||||
try {
|
try {
|
||||||
// open the file input stream
|
// open the file input stream
|
||||||
fis = new FileInputStream(file); // NOSONAR
|
fis = Files.newInputStream(file.toPath());
|
||||||
} catch (final FileNotFoundException e) {
|
} catch (final IOException e) {
|
||||||
// If the source cannot be acquired, abort (no resources to free at this level)
|
// If the source cannot be acquired, abort (no resources to free at this level)
|
||||||
throw new InvalidOperationException("Can't open the specified file input stream from file: '" + file + "'", e);
|
throw new InvalidOperationException("Can't open the specified file input stream from file: '" + file + "'", e);
|
||||||
}
|
}
|
||||||
|
@ -204,7 +203,7 @@ public final class ZipPackage extends OPCPackage {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ZipEntrySource openZipEntrySourceStream(FileInputStream fis) throws InvalidOperationException {
|
private static ZipEntrySource openZipEntrySourceStream(InputStream fis) throws InvalidOperationException {
|
||||||
final ZipArchiveThresholdInputStream zis;
|
final ZipArchiveThresholdInputStream zis;
|
||||||
// Acquire a resource that is needed to read the next level of openZipEntrySourceStream
|
// Acquire a resource that is needed to read the next level of openZipEntrySourceStream
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -30,6 +30,7 @@ import org.apache.poi.util.IOUtils;
|
||||||
import org.apache.poi.util.TempFile;
|
import org.apache.poi.util.TempFile;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* (Experimental) Temp File version of a package part.
|
* (Experimental) Temp File version of a package part.
|
||||||
|
@ -89,12 +90,12 @@ public final class TempFilePackagePart extends PackagePart {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected InputStream getInputStreamImpl() throws IOException {
|
protected InputStream getInputStreamImpl() throws IOException {
|
||||||
return new FileInputStream(tempFile);
|
return Files.newInputStream(tempFile.toPath());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected OutputStream getOutputStreamImpl() throws IOException {
|
protected OutputStream getOutputStreamImpl() throws IOException {
|
||||||
return new FileOutputStream(tempFile);
|
return Files.newOutputStream(tempFile.toPath());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -24,6 +24,7 @@ import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.net.URISyntaxException;
|
import java.net.URISyntaxException;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
|
||||||
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
|
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
|
||||||
import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
|
import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
|
||||||
|
@ -197,7 +198,7 @@ public final class ZipHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Peek at the first few bytes to sanity check
|
// Peek at the first few bytes to sanity check
|
||||||
try (FileInputStream input = new FileInputStream(file)) {
|
try (InputStream input = Files.newInputStream(file.toPath())) {
|
||||||
verifyZipHeader(input);
|
verifyZipHeader(input);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
package org.apache.poi.openxml4j.util;
|
package org.apache.poi.openxml4j.util;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
|
||||||
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
|
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
|
||||||
import org.apache.commons.io.input.UnsynchronizedByteArrayInputStream;
|
import org.apache.commons.io.input.UnsynchronizedByteArrayInputStream;
|
||||||
|
@ -99,7 +100,7 @@ import org.apache.poi.util.TempFile;
|
||||||
}
|
}
|
||||||
} else if (tempFile != null) {
|
} else if (tempFile != null) {
|
||||||
try {
|
try {
|
||||||
return new FileInputStream(tempFile);
|
return Files.newInputStream(tempFile.toPath());
|
||||||
} catch (FileNotFoundException e) {
|
} catch (FileNotFoundException e) {
|
||||||
throw new IOException("temp file " + tempFile.getAbsolutePath() + " is missing");
|
throw new IOException("temp file " + tempFile.getAbsolutePath() + " is missing");
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,11 +20,10 @@
|
||||||
package org.apache.poi.poifs.crypt.temp;
|
package org.apache.poi.poifs.crypt.temp;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.FileOutputStream;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
|
||||||
import javax.crypto.Cipher;
|
import javax.crypto.Cipher;
|
||||||
import javax.crypto.CipherInputStream;
|
import javax.crypto.CipherInputStream;
|
||||||
|
@ -73,7 +72,7 @@ public class EncryptedTempData {
|
||||||
*/
|
*/
|
||||||
public OutputStream getOutputStream() throws IOException {
|
public OutputStream getOutputStream() throws IOException {
|
||||||
Cipher ciEnc = CryptoFunctions.getCipher(skeySpec, cipherAlgorithm, ChainingMode.cbc, ivBytes, Cipher.ENCRYPT_MODE, PADDING);
|
Cipher ciEnc = CryptoFunctions.getCipher(skeySpec, cipherAlgorithm, ChainingMode.cbc, ivBytes, Cipher.ENCRYPT_MODE, PADDING);
|
||||||
outputStream = new CountingOutputStream(new CipherOutputStream(new FileOutputStream(tempFile), ciEnc));
|
outputStream = new CountingOutputStream(new CipherOutputStream(Files.newOutputStream(tempFile.toPath()), ciEnc));
|
||||||
return outputStream;
|
return outputStream;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,7 +84,7 @@ public class EncryptedTempData {
|
||||||
*/
|
*/
|
||||||
public InputStream getInputStream() throws IOException {
|
public InputStream getInputStream() throws IOException {
|
||||||
Cipher ciDec = CryptoFunctions.getCipher(skeySpec, cipherAlgorithm, ChainingMode.cbc, ivBytes, Cipher.DECRYPT_MODE, PADDING);
|
Cipher ciDec = CryptoFunctions.getCipher(skeySpec, cipherAlgorithm, ChainingMode.cbc, ivBytes, Cipher.DECRYPT_MODE, PADDING);
|
||||||
return new CipherInputStream(new FileInputStream(tempFile), ciDec);
|
return new CipherInputStream(Files.newInputStream(tempFile.toPath()), ciDec);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -21,10 +21,10 @@ import static org.apache.poi.ooxml.POIXMLTypeLoader.DEFAULT_XML_OPTIONS;
|
||||||
|
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
import java.nio.file.Files;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
@ -607,7 +607,7 @@ public class XMLSlideShow extends POIXMLDocument
|
||||||
@Override
|
@Override
|
||||||
public XSLFPictureData addPicture(File pict, PictureType format) throws IOException {
|
public XSLFPictureData addPicture(File pict, PictureType format) throws IOException {
|
||||||
byte[] data = IOUtils.safelyAllocate(pict.length(), MAX_RECORD_LENGTH);
|
byte[] data = IOUtils.safelyAllocate(pict.length(), MAX_RECORD_LENGTH);
|
||||||
try (InputStream is = new FileInputStream(pict)) {
|
try (InputStream is = Files.newInputStream(pict.toPath())) {
|
||||||
IOUtils.readFully(is, data);
|
IOUtils.readFully(is, data);
|
||||||
}
|
}
|
||||||
return addPicture(data, format);
|
return addPicture(data, format);
|
||||||
|
|
|
@ -18,10 +18,10 @@
|
||||||
package org.apache.poi.xssf;
|
package org.apache.poi.xssf;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.FileOutputStream;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
|
||||||
import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
|
import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
|
||||||
import org.apache.poi.hssf.HSSFTestDataSamples;
|
import org.apache.poi.hssf.HSSFTestDataSamples;
|
||||||
|
@ -76,7 +76,7 @@ public class XSSFTestDataSamples {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static <R extends Workbook> void writeOut(R wb, File file) throws IOException {
|
private static <R extends Workbook> void writeOut(R wb, File file) throws IOException {
|
||||||
try (FileOutputStream out = new FileOutputStream(file)) {
|
try (OutputStream out = Files.newOutputStream(file.toPath())) {
|
||||||
wb.write(out);
|
wb.write(out);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -197,7 +197,7 @@ public class XSSFTestDataSamples {
|
||||||
* @throws IOException If reading the file fails
|
* @throws IOException If reading the file fails
|
||||||
*/
|
*/
|
||||||
public static XSSFWorkbook readBack(File file) throws IOException {
|
public static XSSFWorkbook readBack(File file) throws IOException {
|
||||||
try (InputStream in = new FileInputStream(file)) {
|
try (InputStream in = Files.newInputStream(file.toPath())) {
|
||||||
return new XSSFWorkbook(in);
|
return new XSSFWorkbook(in);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,10 +18,10 @@
|
||||||
package org.apache.poi.hssf.extractor;
|
package org.apache.poi.hssf.extractor;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.PrintStream;
|
import java.io.PrintStream;
|
||||||
|
import java.nio.file.Files;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.apache.poi.extractor.POIOLE2TextExtractor;
|
import org.apache.poi.extractor.POIOLE2TextExtractor;
|
||||||
|
@ -225,7 +225,7 @@ public class ExcelExtractor implements POIOLE2TextExtractor, org.apache.poi.ss.e
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
try (InputStream is = cmdArgs.getInputFile() == null ? System.in : new FileInputStream(cmdArgs.getInputFile());
|
try (InputStream is = cmdArgs.getInputFile() == null ? System.in : Files.newInputStream(cmdArgs.getInputFile().toPath());
|
||||||
HSSFWorkbook wb = new HSSFWorkbook(is);
|
HSSFWorkbook wb = new HSSFWorkbook(is);
|
||||||
ExcelExtractor extractor = new ExcelExtractor(wb)
|
ExcelExtractor extractor = new ExcelExtractor(wb)
|
||||||
) {
|
) {
|
||||||
|
|
|
@ -27,6 +27,7 @@ import java.io.FileInputStream;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
|
||||||
import org.apache.poi.EncryptedDocumentException;
|
import org.apache.poi.EncryptedDocumentException;
|
||||||
import org.apache.poi.extractor.POITextExtractor;
|
import org.apache.poi.extractor.POITextExtractor;
|
||||||
|
@ -94,7 +95,7 @@ public class OldExcelExtractor implements POITextExtractor {
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("resource")
|
@SuppressWarnings("resource")
|
||||||
FileInputStream biffStream = new FileInputStream(f); // NOSONAR
|
InputStream biffStream = Files.newInputStream(f.toPath());
|
||||||
try {
|
try {
|
||||||
open(biffStream);
|
open(biffStream);
|
||||||
} catch (IOException | RuntimeException e) {
|
} catch (IOException | RuntimeException e) {
|
||||||
|
|
|
@ -19,9 +19,9 @@ package org.apache.poi.hssf.usermodel;
|
||||||
|
|
||||||
import java.awt.Font;
|
import java.awt.Font;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.nio.file.Files;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
@ -118,7 +118,7 @@ final class StaticFontMetrics {
|
||||||
}
|
}
|
||||||
|
|
||||||
try (InputStream metricsIn = (propFile != null)
|
try (InputStream metricsIn = (propFile != null)
|
||||||
? new FileInputStream(propFile)
|
? Files.newInputStream(propFile.toPath())
|
||||||
: FontDetails.class.getResourceAsStream("/font_metrics.properties")
|
: FontDetails.class.getResourceAsStream("/font_metrics.properties")
|
||||||
) {
|
) {
|
||||||
// Use the built-in font metrics file off the classpath
|
// Use the built-in font metrics file off the classpath
|
||||||
|
|
|
@ -19,11 +19,11 @@ package org.apache.poi.poifs.crypt;
|
||||||
import static org.apache.poi.poifs.crypt.Decryptor.DEFAULT_POIFS_ENTRY;
|
import static org.apache.poi.poifs.crypt.Decryptor.DEFAULT_POIFS_ENTRY;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.FileOutputStream;
|
|
||||||
import java.io.FilterOutputStream;
|
import java.io.FilterOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
import java.nio.file.Files;
|
||||||
import java.security.GeneralSecurityException;
|
import java.security.GeneralSecurityException;
|
||||||
|
|
||||||
import javax.crypto.Cipher;
|
import javax.crypto.Cipher;
|
||||||
|
@ -71,7 +71,7 @@ public abstract class ChunkedCipherOutputStream extends FilterOutputStream {
|
||||||
this.plainByteFlags = new SparseBitSet(cs);
|
this.plainByteFlags = new SparseBitSet(cs);
|
||||||
this.chunkBits = Integer.bitCount(cs-1);
|
this.chunkBits = Integer.bitCount(cs-1);
|
||||||
this.fileOut = TempFile.createTempFile("encrypted_package", "crypt");
|
this.fileOut = TempFile.createTempFile("encrypted_package", "crypt");
|
||||||
this.out = new FileOutputStream(fileOut);
|
this.out = Files.newOutputStream(fileOut.toPath());
|
||||||
this.dir = dir;
|
this.dir = dir;
|
||||||
this.cipher = initCipherForBlock(null, 0, false);
|
this.cipher = initCipherForBlock(null, 0, false);
|
||||||
}
|
}
|
||||||
|
@ -303,7 +303,7 @@ public abstract class ChunkedCipherOutputStream extends FilterOutputStream {
|
||||||
private void processPOIFSWriterEvent(POIFSWriterEvent event) {
|
private void processPOIFSWriterEvent(POIFSWriterEvent event) {
|
||||||
try {
|
try {
|
||||||
try (OutputStream os = event.getStream();
|
try (OutputStream os = event.getStream();
|
||||||
FileInputStream fis = new FileInputStream(fileOut)) {
|
InputStream fis = Files.newInputStream(fileOut.toPath())) {
|
||||||
|
|
||||||
// StreamSize (8 bytes): An unsigned integer that specifies the number of bytes used by data
|
// StreamSize (8 bytes): An unsigned integer that specifies the number of bytes used by data
|
||||||
// encrypted within the EncryptedData field, not including the size of the StreamSize field.
|
// encrypted within the EncryptedData field, not including the size of the StreamSize field.
|
||||||
|
|
|
@ -17,11 +17,12 @@
|
||||||
package org.apache.poi.poifs.dev;
|
package org.apache.poi.poifs.dev;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.FileOutputStream;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Paths;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
import org.apache.poi.poifs.common.POIFSConstants;
|
import org.apache.poi.poifs.common.POIFSConstants;
|
||||||
|
@ -65,7 +66,7 @@ public final class POIFSDump {
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println("Dumping " + filename);
|
System.out.println("Dumping " + filename);
|
||||||
try (FileInputStream is = new FileInputStream(filename);
|
try (InputStream is = Files.newInputStream(Paths.get(filename));
|
||||||
POIFSFileSystem fs = new POIFSFileSystem(is)) {
|
POIFSFileSystem fs = new POIFSFileSystem(is)) {
|
||||||
DirectoryEntry root = fs.getRoot();
|
DirectoryEntry root = fs.getRoot();
|
||||||
String filenameWithoutPath = new File(filename).getName();
|
String filenameWithoutPath = new File(filename).getName();
|
||||||
|
@ -98,12 +99,12 @@ public final class POIFSDump {
|
||||||
for(Iterator<Entry> it = root.getEntries(); it.hasNext();){
|
for(Iterator<Entry> it = root.getEntries(); it.hasNext();){
|
||||||
Entry entry = it.next();
|
Entry entry = it.next();
|
||||||
if(entry instanceof DocumentNode){
|
if(entry instanceof DocumentNode){
|
||||||
DocumentNode node = (DocumentNode)entry;
|
final DocumentNode node = (DocumentNode) entry;
|
||||||
DocumentInputStream is = new DocumentInputStream(node);
|
final byte[] bytes;
|
||||||
byte[] bytes = IOUtils.toByteArray(is);
|
try (DocumentInputStream is = new DocumentInputStream(node)) {
|
||||||
is.close();
|
bytes = IOUtils.toByteArray(is);
|
||||||
|
}
|
||||||
try (OutputStream out = new FileOutputStream(new File(parent, node.getName().trim()))) {
|
try (OutputStream out = Files.newOutputStream(new File(parent, node.getName().trim()).toPath())) {
|
||||||
out.write(bytes);
|
out.write(bytes);
|
||||||
}
|
}
|
||||||
} else if (entry instanceof DirectoryEntry){
|
} else if (entry instanceof DirectoryEntry){
|
||||||
|
@ -120,7 +121,7 @@ public final class POIFSDump {
|
||||||
}
|
}
|
||||||
public static void dump(POIFSFileSystem fs, int startBlock, String name, File parent) throws IOException {
|
public static void dump(POIFSFileSystem fs, int startBlock, String name, File parent) throws IOException {
|
||||||
File file = new File(parent, name);
|
File file = new File(parent, name);
|
||||||
try (FileOutputStream out = new FileOutputStream(file)) {
|
try (OutputStream out = Files.newOutputStream(file.toPath())) {
|
||||||
POIFSStream stream = new POIFSStream(fs, startBlock);
|
POIFSStream stream = new POIFSStream(fs, startBlock);
|
||||||
|
|
||||||
byte[] b = IOUtils.safelyAllocate(fs.getBigBlockSize(), POIFSFileSystem.getMaxRecordLength());
|
byte[] b = IOUtils.safelyAllocate(fs.getBigBlockSize(), POIFSFileSystem.getMaxRecordLength());
|
||||||
|
|
|
@ -19,9 +19,9 @@ package org.apache.poi.poifs.filesystem;
|
||||||
|
|
||||||
import java.io.BufferedInputStream;
|
import java.io.BufferedInputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.nio.file.Files;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
import org.apache.poi.poifs.storage.HeaderBlockConstants;
|
import org.apache.poi.poifs.storage.HeaderBlockConstants;
|
||||||
|
@ -171,7 +171,7 @@ public enum FileMagic {
|
||||||
* @param inp a file to be identified
|
* @param inp a file to be identified
|
||||||
*/
|
*/
|
||||||
public static FileMagic valueOf(final File inp) throws IOException {
|
public static FileMagic valueOf(final File inp) throws IOException {
|
||||||
try (FileInputStream fis = new FileInputStream(inp)) {
|
try (InputStream fis = Files.newInputStream(inp.toPath())) {
|
||||||
// read as many bytes as possible, up to the required number of bytes
|
// read as many bytes as possible, up to the required number of bytes
|
||||||
byte[] data = new byte[MAX_PATTERN_LENGTH];
|
byte[] data = new byte[MAX_PATTERN_LENGTH];
|
||||||
int read = IOUtils.readFully(fis, data, 0, MAX_PATTERN_LENGTH);
|
int read = IOUtils.readFully(fis, data, 0, MAX_PATTERN_LENGTH);
|
||||||
|
|
|
@ -18,8 +18,6 @@ package org.apache.poi.poifs.filesystem;
|
||||||
|
|
||||||
import java.io.Closeable;
|
import java.io.Closeable;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.FileOutputStream;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
@ -27,6 +25,8 @@ import java.nio.ByteBuffer;
|
||||||
import java.nio.channels.Channels;
|
import java.nio.channels.Channels;
|
||||||
import java.nio.channels.FileChannel;
|
import java.nio.channels.FileChannel;
|
||||||
import java.nio.channels.ReadableByteChannel;
|
import java.nio.channels.ReadableByteChannel;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Paths;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
@ -822,8 +822,8 @@ public class POIFSFileSystem extends BlockStore
|
||||||
System.exit(1);
|
System.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
try (FileInputStream istream = new FileInputStream(args[0])) {
|
try (InputStream istream = Files.newInputStream(Paths.get(args[0]))) {
|
||||||
try (FileOutputStream ostream = new FileOutputStream(args[1])) {
|
try (OutputStream ostream = Files.newOutputStream(Paths.get(args[1]))) {
|
||||||
try (POIFSFileSystem fs = new POIFSFileSystem(istream)) {
|
try (POIFSFileSystem fs = new POIFSFileSystem(istream)) {
|
||||||
fs.writeFilesystem(ostream);
|
fs.writeFilesystem(ostream);
|
||||||
}
|
}
|
||||||
|
@ -959,7 +959,7 @@ public class POIFSFileSystem extends BlockStore
|
||||||
public static POIFSFileSystem create(File file) throws IOException {
|
public static POIFSFileSystem create(File file) throws IOException {
|
||||||
// Create a new empty POIFS in the file
|
// Create a new empty POIFS in the file
|
||||||
try (POIFSFileSystem tmp = new POIFSFileSystem();
|
try (POIFSFileSystem tmp = new POIFSFileSystem();
|
||||||
OutputStream out = new FileOutputStream(file)) {
|
OutputStream out = Files.newOutputStream(file.toPath())) {
|
||||||
tmp.writeFilesystem(out);
|
tmp.writeFilesystem(out);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
package org.apache.poi.util;
|
package org.apache.poi.util;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Paths;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
@ -36,7 +38,7 @@ public class HexRead {
|
||||||
*/
|
*/
|
||||||
public static byte[] readData( String filename ) throws IOException {
|
public static byte[] readData( String filename ) throws IOException {
|
||||||
File file = new File( filename );
|
File file = new File( filename );
|
||||||
try (InputStream stream = new FileInputStream(file)) {
|
try (InputStream stream = Files.newInputStream(file.toPath())) {
|
||||||
return readData(stream, -1);
|
return readData(stream, -1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -83,7 +85,7 @@ public class HexRead {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] readData( String filename, String section ) throws IOException {
|
public static byte[] readData( String filename, String section ) throws IOException {
|
||||||
return readData(new FileInputStream( filename ), section);
|
return readData(Files.newInputStream(Paths.get(filename)), section);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("fallthrough")
|
@SuppressWarnings("fallthrough")
|
||||||
|
|
|
@ -17,10 +17,10 @@
|
||||||
package org.apache.poi;
|
package org.apache.poi;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.FileNotFoundException;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.io.UncheckedIOException;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
|
||||||
import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
|
import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
|
||||||
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
|
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
|
||||||
|
@ -150,9 +150,9 @@ public final class POIDataSamples {
|
||||||
|
|
||||||
File f = getFile(sampleFileName);
|
File f = getFile(sampleFileName);
|
||||||
try {
|
try {
|
||||||
return new FileInputStream(f);
|
return Files.newInputStream(f.toPath());
|
||||||
} catch (FileNotFoundException e) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new UncheckedIOException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.io.OutputStreamWriter;
|
import java.io.OutputStreamWriter;
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
|
import java.io.UncheckedIOException;
|
||||||
import java.io.Writer;
|
import java.io.Writer;
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -311,7 +312,7 @@ public final class BiffViewer {
|
||||||
|
|
||||||
w.write(buf, 0, idx);
|
w.write(buf, 0, idx);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new UncheckedIOException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@ package org.apache.poi.hssf.usermodel;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.io.UncheckedIOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -53,7 +54,7 @@ public final class StreamUtility {
|
||||||
result = diffInternal(isA, isB, allowableDifferenceRegions);
|
result = diffInternal(isA, isB, allowableDifferenceRegions);
|
||||||
success = true;
|
success = true;
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new UncheckedIOException(e);
|
||||||
} finally {
|
} finally {
|
||||||
close(isA, success);
|
close(isA, success);
|
||||||
close(isB, success);
|
close(isB, success);
|
||||||
|
@ -70,7 +71,7 @@ public final class StreamUtility {
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
if(success) {
|
if(success) {
|
||||||
// this is a new error. ok to throw
|
// this is a new error. ok to throw
|
||||||
throw new RuntimeException(e);
|
throw new UncheckedIOException(e);
|
||||||
}
|
}
|
||||||
// else don't subvert original exception. just print stack trace for this one
|
// else don't subvert original exception. just print stack trace for this one
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|
|
@ -19,7 +19,6 @@ package org.apache.poi.ss.formula.function;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
@ -27,6 +26,8 @@ import java.io.InputStreamReader;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.io.PrintStream;
|
import java.io.PrintStream;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Paths;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
@ -369,7 +370,7 @@ public final class ExcelCetabFunctionExtractor {
|
||||||
throw new IllegalStateException("Did not find file " + SOURCE_DOC_FILE_NAME + " in the resources");
|
throw new IllegalStateException("Did not find file " + SOURCE_DOC_FILE_NAME + " in the resources");
|
||||||
}
|
}
|
||||||
|
|
||||||
try (InputStream stream = new FileInputStream(SOURCE_DOC_FILE_NAME)) {
|
try (InputStream stream = Files.newInputStream(Paths.get(SOURCE_DOC_FILE_NAME))) {
|
||||||
File outFile = new File("functionMetadataCetab.txt");
|
File outFile = new File("functionMetadataCetab.txt");
|
||||||
|
|
||||||
processFile(stream, outFile);
|
processFile(stream, outFile);
|
||||||
|
|
|
@ -18,19 +18,18 @@
|
||||||
package org.apache.poi.ss.formula.function;
|
package org.apache.poi.ss.formula.function;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.FileNotFoundException;
|
|
||||||
import java.io.FileOutputStream;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.io.PrintStream;
|
import java.io.PrintStream;
|
||||||
|
import java.io.UncheckedIOException;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
import java.net.MalformedURLException;
|
import java.net.MalformedURLException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.net.URLConnection;
|
import java.net.URLConnection;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.nio.file.Files;
|
||||||
import java.security.MessageDigest;
|
import java.security.MessageDigest;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
@ -486,9 +485,9 @@ public final class ExcelFileFormatDocFunctionExtractor {
|
||||||
}
|
}
|
||||||
OutputStream os;
|
OutputStream os;
|
||||||
try {
|
try {
|
||||||
os = new FileOutputStream(outFile);
|
os = Files.newOutputStream(outFile.toPath());
|
||||||
} catch (FileNotFoundException e) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new UncheckedIOException(e);
|
||||||
}
|
}
|
||||||
os = new SimpleAsciiOutputStream(os);
|
os = new SimpleAsciiOutputStream(os);
|
||||||
PrintStream ps;
|
PrintStream ps;
|
||||||
|
@ -559,7 +558,7 @@ public final class ExcelFileFormatDocFunctionExtractor {
|
||||||
|
|
||||||
byte[]buf = new byte[2048];
|
byte[]buf = new byte[2048];
|
||||||
try {
|
try {
|
||||||
InputStream is = new FileInputStream(f);
|
InputStream is = Files.newInputStream(f.toPath());
|
||||||
while(true) {
|
while(true) {
|
||||||
int bytesRead = is.read(buf);
|
int bytesRead = is.read(buf);
|
||||||
if(bytesRead<1) {
|
if(bytesRead<1) {
|
||||||
|
@ -590,7 +589,7 @@ public final class ExcelFileFormatDocFunctionExtractor {
|
||||||
InputStream is = conn.getInputStream();
|
InputStream is = conn.getInputStream();
|
||||||
System.out.println("downloading " + url.toExternalForm());
|
System.out.println("downloading " + url.toExternalForm());
|
||||||
result = TempFile.createTempFile("excelfileformat", ".odt");
|
result = TempFile.createTempFile("excelfileformat", ".odt");
|
||||||
OutputStream os = new FileOutputStream(result);
|
OutputStream os = Files.newOutputStream(result.toPath());
|
||||||
while(true) {
|
while(true) {
|
||||||
int bytesRead = is.read(buf);
|
int bytesRead = is.read(buf);
|
||||||
if(bytesRead<1) {
|
if(bytesRead<1) {
|
||||||
|
@ -601,7 +600,7 @@ public final class ExcelFileFormatDocFunctionExtractor {
|
||||||
is.close();
|
is.close();
|
||||||
os.close();
|
os.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new UncheckedIOException(e);
|
||||||
}
|
}
|
||||||
System.out.println("file downloaded ok");
|
System.out.println("file downloaded ok");
|
||||||
return result;
|
return result;
|
||||||
|
|
|
@ -19,9 +19,11 @@ package org.apache.poi.ss.util;
|
||||||
|
|
||||||
import java.io.DataInputStream;
|
import java.io.DataInputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileOutputStream;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.io.UncheckedIOException;
|
||||||
|
import java.nio.file.Files;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
@ -151,7 +153,7 @@ public class NumberRenderingSpreadsheetGenerator {
|
||||||
File outputFile = new File("ExcelNumberRendering.xls");
|
File outputFile = new File("ExcelNumberRendering.xls");
|
||||||
|
|
||||||
try (UnsynchronizedByteArrayOutputStream baos = UnsynchronizedByteArrayOutputStream.builder().get();
|
try (UnsynchronizedByteArrayOutputStream baos = UnsynchronizedByteArrayOutputStream.builder().get();
|
||||||
FileOutputStream os = new FileOutputStream(outputFile)) {
|
OutputStream os = Files.newOutputStream(outputFile.toPath())) {
|
||||||
wb.write(baos);
|
wb.write(baos);
|
||||||
|
|
||||||
byte[] fileContent = baos.toByteArray();
|
byte[] fileContent = baos.toByteArray();
|
||||||
|
@ -159,7 +161,7 @@ public class NumberRenderingSpreadsheetGenerator {
|
||||||
|
|
||||||
os.write(fileContent);
|
os.write(fileContent);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new UncheckedIOException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println("Finished writing '" + outputFile.getAbsolutePath() + "'");
|
System.out.println("Finished writing '" + outputFile.getAbsolutePath() + "'");
|
||||||
|
|
Loading…
Reference in New Issue