java - 查询创建不打印所有索引

标签 java apache-poi

当我创建文件并写入查询时,它是否只写入一次?为什么?

for (spinelliIndex = 0; spinelliIndex < spinelli.getVeicoli_id().size(); spinelliIndex++) {
            boolean match = false;
            for (veicoloIndex = 0; veicoloIndex < veicoloDb.getVeicoloId().size(); veicoloIndex++) {
                if (spinelli.getVeicoli_targa().get(spinelliIndex).equals(veicoloDb.getTarga().get(veicoloIndex))) {
                    match = true;

                    // Stampa a Video
                    System.out.println(spinelli.getVeicoli_targa().get(spinelliIndex) + " = "
                            + veicoloDb.getTarga().get(veicoloIndex) + " --> "
                            + spinelli.getVeicoli_id().get(spinelliIndex) + " --> "
                            + veicoloDb.getVeicoloId().get(veicoloIndex));

                    // Scrivi nella riga i
                    row = sheet.getRow(spinelliIndex);

                    // Scrivi nella colonna AC indice 28
                    cell = row.createCell(28);

                    // Scrivi il ciclo in tutte le righe nella colonna AC indice 28
                    sheet.getRow(spinelliIndex).createCell(28)
                            .setCellValue(spinelli.getVeicoli_id().get(spinelliIndex));

                    FileOutputStream fos = new FileOutputStream(filePath);

                    // Scrivi nel file EXCEL
                    wb.write(fos);
                    fos.close();

                    // Scrivi NEl file .txt
                    // Crea la Query e scrivi nel file
                    file = new File(path);
                    fw = new FileWriter(file);

                    fw.write("UPDATE veicolo SET ID = " + "'" + spinelli.getVeicolo_newid().get(spinelliIndex) + "'" + ","
                            + "CREATE_DATE = " + "'" + veicoloDb.getCreate_date().get(veicoloIndex) + "'" + ","
                            + "MODIFIED_DATE = " + "'" + veicoloDb.getModified_date().get(veicoloIndex) + "'" + "," + "UUID = "
                            + "'" + veicoloDb.getUuid().get(veicoloIndex) + "'" + "," + "CLASSE_EURO = " + "'"
                            + veicoloDb.getClasse_euro().get(veicoloIndex) + "'" + "," + "CODICE_CLIENTE_ORIGINARIO = " + "'"
                            + veicoloDb.getCodice_cliente_originario().get(veicoloIndex) + "'" + "," + "CONTRATTO = " + "'"
                            + veicoloDb.getContratto().get(veicoloIndex) + "'" + "," + "DATA_FINE_VALIDITA = " + "'"
                            + veicoloDb.getData_fine_validita().get(veicoloIndex) + "'" + "," + "DATA_INIZIO_VALIDITA = " + "'"
                            + veicoloDb.getData_inizio_validita().get(veicoloIndex) + "'" + "," + "DISPONIBILITA = " + "'"
                            + veicoloDb.getDisponibilita().get(veicoloIndex) + "'" + "," + "NAZIONE = " + "'"
                            + veicoloDb.getNazione().get(veicoloIndex) + "'" + "," + "TARGA = " + "'" + veicoloDb.getTarga().get(veicoloIndex)
                            + "'" + "," + "TIPO_DI_POSSESSO = " + "'" + veicoloDb.getTipo_di_possesso().get(veicoloIndex) + "'"
                            + "," + "ID_ANAGRAFICA = " + "'" + veicoloDb.getId_anagrafica().get(veicoloIndex) + "'"
                            + "FROM DISPOSITIVO_VEICOLO WHERE dispositivo_veicolo.id_anagrafica = veicolo.id_anagrafica"
                            + ";" + "\n");
                    fw.flush();

                    fw.close();

                }

            }
            // Targhe non trovate
            if (!match) {
                System.out.println("Targa non trovata: " + spinelli.getVeicoli_targa().get(spinelliIndex));
            }

        }

    }

最佳答案

我不确定您的程序的预期行为是什么,但我猜您想多次写入(追加)文件,对吗?

在您的代码中,创建新文件 (new File()) 并在循环中关闭编写器 (fw.close())。 看起来,程序多次覆盖同一个文件。

因此,如果您想追加(而不是覆盖),我建议您将文件创建和文件关闭放在循环外部,如下所示(虚拟代码):

file = new File(path);
fw = new FileWriter(file);
for (spinelliIndex = 0; spinelliIndex < spinelli.getVeicoli_id().size(); spinelliIndex++) {
    fw.write("something");
}
fw.close();

此外,fw.close() 将调用 fw.flush()。如果您没有任何具体原因编写它,则可以将其删除。

关于java - 查询创建不打印所有索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57035621/

相关文章:

java - 如何从我的数学运算中删除模数?

java - 如何根据用户从下拉菜单中选择的参数对 Java 对象列表进行排序?

java - 将 Java 项目直接放在源代码存储库下是最佳做法吗

java - R 文件从 Android Studio 中删除

java - 使用 testNG 读取 selenium 中的 excel 数据

java - 使用java将xls中的字符串转换为日期格式

java - 由于 BufferStrategy,KeyEvent 未生成

java - 使用 POI XSLF 时如何创建 PPTX?

java - 使用 Apache POI 合并 Excel 中的单元格

java - 如何创建 java poi 条形图,结合给定图像中的两个条形值?