// Я использую следующий код для записи в лист Excel, который был загружен из Интернета. Но каким-то образом файл становится поврежденным и становится равным нулю байтов после загрузки и выдачи сообщения об исключении пустого файла.
publi c class SampleRead {
public static String ext="xlsx";
public static File getTheNewestFile(String filePath, String ext) {
File theNewestFile = null;
File dir = new File(filePath);
FileFilter fileFilter = new WildcardFileFilter("*." +ext);
File[] files = dir.listFiles(fileFilter);
if (files.length > 0) {
/** The newest file comes first **/
Arrays.sort(files, LastModifiedFileComparator.LASTMODIFIED_REVERSE);
theNewestFile = files[0];
}
return theNewestFile;
}
publi c stati c void main (String [] args) выдает IOException, Throwable
{
DataFormatter dataFormatter = new DataFormatter();
ArrayList<String> dates=new ArrayList<>();
FileInputStream SourceFile=new FileInputStream("D:\\Cigniti\\Mjunction-Automation-master-github-master1\\ExcelInput\\\\RFQ Item.xlsx");
XSSFWorkbook SourceFileWB = new XSSFWorkbook(SourceFile);
XSSFSheet SourceFileSheet = SourceFileWB.getSheetAt(1);
for (int q=7; q<=7; q++)
{
Row row = SourceFileSheet.getRow(q);
for (int r = 0; r < row.getLastCellNum(); r++) {
String cellStringValue = dataFormatter.formatCellValue(row.getCell(r));
System.out.println(cellStringValue);
dates.add(cellStringValue);
}
}
SourceFile.close();
File DownloadedFile=getTheNewestFile("C:/Users/DELL/Downloads", ext);
String DownloadedFilePath=DownloadedFile.getAbsolutePath();
System.out.println("Path of the file downloaded is: "+DownloadedFilePath);
System.out.println("Length of the file downloaded is: "+DownloadedFile.length());
FileOutputStream DownloadedFileS = new FileOutputStream(DownloadedFile);
XSSFWorkbook DownloadedFileWB = new XSSFWorkbook(DownloadedFile);
XSSFSheet DownloadedFileSheet = DownloadedFileWB.getSheetAt(1);
CreationHelper creationHelper = DownloadedFileWB.getCreationHelper();
Row row = DownloadedFileSheet.createRow(7);
Boolean IsWritable=DownloadedFile.canWrite();
System.out.println("Downloaded File is writable?: "+IsWritable);
for (int q=7; q<=7; q++)
{
Row row1 = DownloadedFileSheet.getRow(q);
for (int r = 0; r < row1.getLastCellNum(); r++) {
Cell cell = row1.createCell((short) 7);
String ex= dates.get(r);
cell.setCellValue(ex);
}
}
DownloadedFileS.close ();
}}