Пример программы,
осуществляющей перекодировку,
прием данных с консоли и
 получающей список файлов в директории

 

import java.io.*;
class F1 {
public static void main(String [] args) throws Exception {

// переназначим вывод на pr866 с перекодировкой в "Cp866"
PrintWriter pr866 = new PrintWriter(
new OutputStreamWriter(System.out, "Cp866"), true
);


int i;
String b1;

// так можно выяснит есть ли в командной строке данные....
// if ( args.length != 0 )
// распечатаем количество слов в командной строке
System.out.println("args.length=" + args.length );
System.out.println("===============================================");

// распечатаем все слова из командной строки.....
// командная строка в коде Ср1251.......
for (i=0; i < args.length; i++) {
System.out.println("args[" + i + "]=" + args[i]);
};
System.out.println("===============================================");

// распечатаем все слова из командной строки.....
// командная строка в коде Ср1251 --
// предварительно перекодируем ее в Ср866 в строку b1
for (i=0; i < args.length; i++) {
// так можно перекодировать строку из "Ср1251" в "Cp866"
   b1 =new String(args[i].getBytes("Cp866") );
   System.out.println("args[" + i + "]=" + b1);
};
System.out.println("===============================================");

// распечатаем все слова из коммандной строки.....
// командная строка в коде Ср1251 -
// печатаем через переназначенный вывод pr866.......
for (i=0; i < args.length; i++) {
   pr866.println("args[" + i + "]=" + args[i]);
};
System.out.println("===============================================");

// получим список файлов из директории args[0]
// перекодируем и распечатаем
// если args[0] не указан возмем текущую директорию
String dir;
if ( args.length != 0 ) dir=args[0]+"\\"; else dir=".\\";
System.out.println("dir=" + dir);
File d = new File(dir);
if (d.exists() && d.isDirectory() ) {
    String bb[] = d.list();
    for( int ii=0; ii< bb.length; ii++)
      {
        //System.out.println(bb[ii]);
        pr866.println(bb[ii]);
      };
};
System.out.println("=========== Ввводите текст =================================");


// вводим данные с консоли и их выводим
//пока не введена "пустая строка"
String s;
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
do
 {
    s=in.readLine(); //Читаем с клавиатуры
    System.out.println("s=<"+s+">");
 } while (s.length() != 0 );
} // конец процедуры main....


}