Bir Windows 7 makinesinde bir JAVA kodundan beri .txt dosyasını kaydetmeye çalışıyorum ve kodu ANSI'de kodlar, ancak Windows Server 2000'de aynısını yaptığımda, kod UTF'ye kaydedilir.JAVA kodum, işletim sistemine bağlı olarak farklı bir kodlamayla (ANSI, UTF, ...) bir .txt kaydetme
Farklı testler yapıyorum ve kodda değişiklik yapmadan Windows Server 2000'de her defasında kodu çalıştırdığımda kodlamanın değiştiğini kontrol ettim.
başım zip dosyası dosyayı kaydetmeden ve kod sonraki ("ISO-8859-1" tarafından değiştim "CP1252" ama sonuç aynıdır) 'dir:
public byte[] getBytesZipFile(String nombreFichero, String input) throws IOException {
String tempdir = System.getProperty("java.io.tmpdir");
if (!(tempdir.endsWith("/") || tempdir.endsWith("\\"))) {
tempdir = tempdir + System.getProperty("file.separator");
}
File tempFile = new File(tempdir + nombreFichero + ".txt");
try {
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(tempFile), "Cp1252"));
bufferedWriter.write(input);
bufferedWriter.flush();
bufferedWriter.close();
ByteArrayOutputStream byteArrayOutputStreambos = new ByteArrayOutputStream();
ZipOutputStream zipOutputStream = new ZipOutputStream(byteArrayOutputStreambos);
FileInputStream fileInputStream = new FileInputStream(tempFile);
zipOutputStream.putNextEntry(new ZipEntry(tempFile.getName()));
byte[] buf = new byte[1024];
int len;
while ((len = fileInputStream.read(buf)) > 0) {
zipOutputStream.write(buf, 0, len);
}
zipOutputStream.closeEntry();
fileInputStream.close();
zipOutputStream.flush();
zipOutputStream.close();
return byteArrayOutputStreambos.toByteArray();
} finally {
tempFile.delete();
}
}
Yardım ve cevaplar ve saygılar ile teşekkür ederiz.
JVM sürümü nedir? – adranale
Testleri 6 ve 7 ile yapıyorum ve sonuç aynı. –
Java 6 ve 7'nin Windows Server 2000'de bile çalışabildiğine şaşırdım. –