Файл поврежден при записи данных в него с исключением пустого файла - PullRequest
0 голосов
/ 11 апреля 2020

// Я использую следующий код для записи в лист 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 ();

}}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...