У меня есть этот java-метод для создания файла csv на основе базы данных mysql. Файл создается правильно, но проблема в том, что в конце таблицы добавлена пустая строка. Я пытался избежать этого, включая предложение if else, но я не смог его исправить. Помогите!Почему этот метод создает одну последнюю пустую строку в файле csv?
На самом деле я работаю с JavaFX, но это ошибка Java так ...
Это метод код фиксированной (проблема, видимо, из-за PHPMyAdmin, когда я пытаюсь импортировать файл CSV добавляет пустая строка в конце):
public void csv(String tabla) throws IOException{
try{
DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd-HHmmss");
java.util.Date fecha=new java.util.Date();
String workingDir = System.getProperty("user.dir");
String filename= workingDir + "/" + dateFormat.format(fecha) + ".csv";
File file= new File(filename);
FileWriter writer=new FileWriter(file);
writer.append("fecha");
writer.append(',');
writer.append("hora");
writer.append(',');
writer.append("fechatotal");
writer.append(',');
writer.append("temperatura");
writer.append(',');
writer.append("humedad");
writer.append(',');
writer.append("luminosidad");
ResultSet resultado = st.executeQuery("SELECT * FROM "+tabla+" ORDER BY fechatotal DESC");
while(resultado.next()){
writer.append('\n');
writer.append(resultado.getDate("fecha").toString());
writer.append(',');
writer.append(resultado.getTime("hora").toString());
writer.append(',');
writer.append(resultado.getTimestamp("fechatotal").toString());
writer.append(',');
writer.append(Double.toString(resultado.getDouble("temperatura")));
writer.append(',');
writer.append(Double.toString(resultado.getDouble("humedad")));
writer.append(',');
writer.append(Double.toString(resultado.getDouble("luminosidad")));
}
writer.close();
}catch(SQLException e){
e.printStackTrace();
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("Error");
alert.setHeaderText("Error(CSV)");
alert.setContentText("Uuuuups, ha ocurrido un error!");
alert.showAndWait();
}
}
@khelwood Я только что прошел и улучшили это немного ... – Edd
отступов это то, что кто-то редактировал свой вопрос и фиксировано. – khelwood
Вы можете использовать метод '' isLast() '] (http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html#isLast()) вместо того, чтобы идти вперед, а затем назад , это может сделать ваш код более читаемым – Bibz