powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Кодировка в JAVA
9 сообщений из 9, страница 1 из 1
Кодировка в JAVA
    #34308185
andrei77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет. У меня есть xml. Она не открывается потомучто некоторые значения элементов в кодировке, помоему UTF-8... Вообщем тема. Если я открываю через ноутпэд и схораняю как файл в формате UTF-8, то мой xml-процессор понимает и читает все это. как тоже самое написать на java, пишу следующий код:

import java.io.*;

public class CopyBytes {
public static void main(String[] args) throws IOException {
File inputFile = new File("erp.xml");
File outputFile = new File("erp1.xml");

FileInputStream in = new FileInputStream(inputFile);
InputStreamReader isr = new InputStreamReader(in, "UTF-8");
FileOutputStream out = new FileOutputStream(outputFile);
int c;

while ((c = isr.read()) != -1)
out.write(c);

isr.close();
out.close();
}
}


Но кроме символов эээээээ ничего не выводит, что я делаю не так?
...
Рейтинг: 0 / 0
Кодировка в JAVA
    #34308275
Фотография raidan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrei77
Но кроме символов эээээээ ничего не выводит, что я делаю не так?
Мне кажется, вы не думали над тем, зачем в вашем коде используется
InputStreamReader isr = new InputStreamReader(in, "UTF-8").
И чего не хватает при выводе потока.
...
Рейтинг: 0 / 0
Кодировка в JAVA
    #34308390
andrei77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не хватает выводв в UTF-8, я делаю так:

import java.io.*;

public class CopyBytes {
public static void main(String[] args) throws IOException {
FileInputStream in = new FileInputStream("erp.xml");
InputStreamReader isr = new InputStreamReader(in, "UTF8");
FileOutputStream fos = new FileOutputStream("mllll.txt");
Writer out = new OutputStreamWriter(fos, "UTF8");
int c;

while ((c = isr.read()) != -1)
out.write(c);


in.close();
isr.close();
fos.close();
out.close();
}
}
...
Рейтинг: 0 / 0
Кодировка в JAVA
    #34308432
Фотография raidan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, приблизительно так.
Не забывайте про Flush.
Надеюсь лишь, что вы не будете так делать в реальном приложении и пример — исключительно для опыта в сохранении файлов с разными кодировками ;)
...
Рейтинг: 0 / 0
Кодировка в JAVA
    #34308488
andrei77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а почему оно так тоже не работает?
...
Рейтинг: 0 / 0
Кодировка в JAVA
    #34308513
Фотография raidan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrei77а почему оно так тоже не работает?
Может быть вам следует начать с основ программирования?
Или основ Java. Существует большой количество хороших книг.
Вас научат различать потоки ввода/вывода и механизмы чтения из потоков.
Вы поймете, что следует закрывать сначала, а что потом.
...
Рейтинг: 0 / 0
Кодировка в JAVA
    #34308635
andrei77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я и так об этом знаю :)
конечно не так хорошо
но всеже...

думаю, что эти штуки закрывать не надо было просто, а только потоки
...
Рейтинг: 0 / 0
Кодировка в JAVA
    #34308650
Фотография raidan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Достаточно лишь изменить порядок
Код: plaintext
1.
2.
3.
4.
        out.close();
        isr.close();
        in.close();
        fos.close();
...
Рейтинг: 0 / 0
Кодировка в JAVA
    #34308736
andrei77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
книжки у меня всегда под рукой. но вопросы остаются

вот сделал, все отлично переводится

import java.io.*;

public class CopyBytes {
public static void main(String[] args) throws IOException {
FileInputStream in = new FileInputStream("erp.xml");
InputStreamReader isr = new InputStreamReader(in, "cp1251");
FileOutputStream fos = new FileOutputStream("mllll.txt");
Writer out = new OutputStreamWriter(fos, "UTF16");

int c;

while ((c = in.read()) != -1)
out.write(c);

in.close();
fos.close();

}
}



Только не понимаю, как сделать аналогично операции в блокноте открыть и сохранит в UTF8

В какой кодировке нужно читать?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Кодировка в JAVA
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]