Results 11 to 20 of 57

Thread: кросс-платформность на Java

Threaded View

  1. #1
    подниматель пингвинов crazy-mike's Avatar
    Join Date
    Nov 2006
    Location
    L'viv
    Posts
    179,963

    Talking кросс-платформность на Java

    :girl_cray2:
    Написано однажды - работает везде? Как бы не так!!!!!!! (т.е. оно "типа работает" - но "немного иначе" :grum: )
    Вообще-то пока всё латинскими буквами куда-нибудь вводится-выводится , то в это "скромное утверждение" можно даже и поверить.
    Но вот если копнуть чуть глубже (когда приходится приложения на "рідній мові" делать :grum: ) , то начинаются сюрпризы.
    Конечно же на экран всё можно гнать "картинками". Но ведь что-то из БД надо выводить. Да и записывать в БД - тоже надо (или в файлы куда-нибудь ). И тут начинается "Welcome to Hell".
    (Java , а не PHP :grum: )
    PHP Code:
    import java.lang.*;
    import java.io.*;

    class 
    Mx {

      public static 
    void main(String[] aa
      { 
         try {
           
    FileWriter f=new FileWriter("hello.txt");
           
    f.write("Привет!\n");
           
    f.close();
         } catch(
    IOException e) {
           
    System.out.println("Err!\n");
         };  
      
      }  


    Ну напишем что-то такое под Win XP (наберём текст в Notepad).
    Скомпилируем по javac -encoding CP1251 nonsense.java и запустим по java Mx. Данные в файл запишутся в кодировке windows-1251.
    Теперь туже прогу запустим на java-машине под FreeBSD (или под Linux). Она даже компилироваться будет с такими же ключами - но данные в файл запишутся с ошибками перекодировки (не запишется кирилица).
    Но если написать это чуть иначе - то всё будет работать "одинаково" и под *NIX , и под WinXP.
    (Java :grum: )
    PHP Code:
    import java.lang.*;
    import java.io.*;

    class 
    Mx {

      public static 
    void main(String[] aathrows Exception 
      
    OutputStreamWriter w
           
    = new OutputStreamWriter(new FileOutputStream("bye.txt"),"CP1251");
        
    w.write("Привет!\n");
        
    w.close();
      
      }  


    Просто для записи в файл тоже указывается перекодировка. Но всё что связано с графикой - с этим в смысле "вывода кирилицы" (по крайней мере в Swing ) проблем в самом деле нет.
    Last edited by crazy-mike; 04-08-2009 at 04:54 AM.
    Жизнь дается человеку один раз и прожить ее надо так, чтобы не ошибиться в рецептах.
    Строить Асгардию побуждает тьма, посетившая людские души

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Russian America Top. Рейтинг ресурсов Русской Америки. Terms of Service | Privacy Policy Рейтинг@Mail.ru