Olá,
Estou usando esse método para criar um arquivo txt com as informações que pego de uma lista.
O problema que estou tendo é que quando faço o download do arquivo, não consigo abrir no Editor de Texto do Linux.
Da o seguinte erro:
O gedit não conseguiu detectar a codificação de caracteres.
Por favor, verifique que você não está tentando abrir um arquivo binário.
Selecione uma codificação de caracteres do menu e tente novamente.
Como posso resolver esse problema?
public Download getCsvPhonesList(WebAddress webAddress) {
Long id = webAddress.getId();
File file = new File(id+".txt");
String contentType = "document/txt";
//String contentType = "text/csv";
//String contentType = "text/plain";
//String contentType = "application/vnd.ms-excel";
String csvContent = "";
List<PhoneAuthenticated> phones = new ArrayList<PhoneAuthenticated>();
switch (webAddress.getType()) {
case URL:
phones = phoneDAO.listWithAddress((Url) webAddress, 0, Integer.MAX_VALUE);
break;
case EMAIL:
phones = phoneDAO.listWithAddress((Email) webAddress, 0, Integer.MAX_VALUE);
break;
}
for (PhoneAuthenticated phone : phones) {
//csvContent += "\"" + phone.getName() + " \";";
csvContent += phone.getName() + ";";
csvContent += phone.getAreaCode() + ";";
csvContent += phone.getNumber() + ";";
csvContent += phone.getLbs() + ";";
if(phone.getAddress() != null){
csvContent += phone.getAddress().getStreet1() + ";";
csvContent += phone.getAddress().getCity() + ";";
csvContent += phone.getAddress().getState().getName() + ";";
csvContent += phone.getAddress().getState().getCountry().getNameEnglish() + ";";
csvContent += phone.getAddress().getZipCode() + ";";
csvContent += phone.getAddress().getLatitude() + ";";
csvContent += phone.getAddress().getLongitude() + ";";
}
csvContent += "\n";
}
try {
file.createNewFile();
FileOutputStream fos = new FileOutputStream(file);
for (char c : csvContent.toCharArray()) {
fos.write(c);
}
fos.flush();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
return new FileDownload(file, contentType);
}