abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 19:22 | IT novinky

    Nvidia na své konferenci NVIDIA GTC Taipei 2026 představila řadu novinek. Společně s Microsoftem představili superčip NVIDIA RTX Spark (až 6 144 jader GPU, 20 jader CPU, 1 petaflop AI výkonu v FP4 a 128 GB jednotné paměti). První notebooky a stolní počítače s tímto čipem od Nvidie místo Intelu nebo AMD by se měly na trh dostat na podzim letošního roku.

    Ladislav Hagara | Komentářů: 0
    dnes 13:22 | IT novinky

    Na Kickstarteru běží kampaň na podporu kapesního počítače s Linuxem CardputerZero od společnosti M5Stack. Postaven je na Raspberry Pi Compute Module 0. Podporuje moduly M5. Koupit lze s rozšířeními LoRa a CC1101.

    Ladislav Hagara | Komentářů: 0
    dnes 11:11 | Pozvánky

    Tento týden se bude vyznačovat zejména deštěm, a proto vás může zajímat, že již v úterý proběhne 63. Virtuální Bastlírna, která se bude odehrávat přímo v teple vašich domovů a bastlíren. Proto se připojte k této volné otevřené diskuzi bastlířů, techniků, vědců, ve které se probírají novinky a zajímavá témata z techniky. Mezi největší novinky bude tentokrát patrně patřit oznámení hackerského nástroje Flipper One. Zároveň úspěšně probíhá

    … více »
    bkralik | Komentářů: 0
    dnes 03:22 | Nová verze

    86Box (Wikipedie), tj. emulátor retro počítačů založených na x86, byl vydán ve verzi 6.0. Přibyly například zvuky pevného disku. Na GitHubu jsou vedle zdrojových kódů ke stažení také připravené balíčky ve formátu AppImage.

    Ladislav Hagara | Komentářů: 0
    dnes 03:00 | Nová verze

    Byla vydána nová verze 4.6 audio přehrávače Audacious (Wikipedie). Z novinek lze vypíchnout nový plugin pro procházení soubory, podporu audio formátu Musepack SV8 nebo přechod na build systém Meson.

    Ladislav Hagara | Komentářů: 0
    včera 15:55 | Nová verze

    Alliance for Open Media vydala verzi 1.0.0 specifikace svobodného videoformátu AV2. Jean-Baptiste Kempf, prezident neziskové organizace VideoLAN stojící za svobodným multiplatformním multimediálním přehrávačem a frameworkem VLC, představil na svém blogu dekodér AV2 s názvem dav2d.

    Ladislav Hagara | Komentářů: 0
    včera 15:00 | Nová verze

    V aktuálním přehledu vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie) bylo oznámeno vydání nové verze 0.2.0.

    Ladislav Hagara | Komentářů: 0
    včera 14:33 | Nová verze

    Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 26.5.1. Přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 0
    včera 14:11 | Nová verze

    Byla vydána nová stabilní verze 26.05 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Yarara. Podrobný přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.

    Ladislav Hagara | Komentářů: 0
    29.5. 00:22 | Nová verze

    Byla vydána verze 1.96.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 2
    Které desktopové prostředí na Linuxu používáte?
     (12%)
     (8%)
     (2%)
     (15%)
     (31%)
     (4%)
     (6%)
     (3%)
     (16%)
     (26%)
    Celkem 1789 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: Java: mezery v zapsaném souboru (začátečník)

    5.8.2009 14:43 Jan Grmela | skóre: 45 | blog: Kilo šťávy z lachtana | Brno
    Java: mezery v zapsaném souboru (začátečník)
    Přečteno: 788×

    Dobrý den,
    potřebuji na rychlo vyrobit program v Javě do jednoho projektu. Javě moc nerozumím, tak mě berte s rezervou. Cílem je aby třída (momentálně definováno jako proměnné) obsahovala kód shell skriptů, které budou vzdáleným voláním zapsány na disk a spuštěny. Pokud však takový skript zapíšu do cílového adresáře (Linux, 32-bit, x86), obsahuje jeho kód mezeru (resp. znak NULL dle hexa editoru) za každým znakem.
    Příklad:

    (originální kód v Java třídě)
    this.file = "#!/bin/sh\n" +
    :
    :
    "	lines=$(expr $(wc -l $TARGET|sed 's/^ *//'|cut -d \" \" -f 1) \"-\" 2)\n" +
    "	head -n $lines $TARGET > $TEMP\n" +
    "	cat $SOURCE >> $TEMP\n" +
    "	tail -n 2 $TARGET >> $TEMP\n" +
    :
    :
    
    (kód zapsaný do souboru)
    	 l i n e s = $ ( e x p r   $ ( w c   - l   $ T A R G E T | s e d   ' s / ^   * / / ' | c u t   - d   "   "   - f   1 )   " - "   2 ) 
     	 h e a d   - n   $ l i n e s   $ T A R G E T   >   $ T E M P 
     	 c a t   $ S O U R C E   > >   $ T E M P 
     	 t a i l   - n   2   $ T A R G E T   > >   $ T E M P 
    (kód zodpovědný za zápis stringu)
    File file = new File(this.script);
    DataOutputStream stream = new DataOutputStream(new FileOutputStream(file));
    stream.writeUTF(this.install); // zkoušel jsem i writeChars -- žádná změna
    return 0;

    Data shell skriptů nemohu umístnit mimo třídu. Ptám se tedy -- jak se zbavím mezer v souboru? A dále, existuje nějaká "lepší" možnost zápisu většího množství dat (podobně jako třeba v Perlu) do Stringu či jiné datové struktury (kterou pak vyplivnu do souboru), tak, abych nemusel každý řádek dávat do úvozovek a spojovat operátorem +...s tím, aby však zápis byl stejně přehledný.

    Odpovědi

    5.8.2009 15:20 Jan Trávníček | skóre: 10 | blog: ehonza | Existuje
    Rozbalit Rozbalit vše Re: Java: mezery v zapsaném souboru (začátečník)

    Zdravim. V javadocu (java.sun.com/j2se/1.4.2/docs/api/java/io/DataOutputStream.html) je popsáno jak se chovají jednotlivé metody. Ai by bylo výhodnější použít writeBytes(). Protože writeChars() a pravděpodobně i writeUTF() zapisuje znaky po 2 bytech.

    To mess up a Linux box, you need to work at it; to mess up your Windows box, you just have to work on it.
    5.8.2009 15:24 Jan Grmela | skóre: 45 | blog: Kilo šťávy z lachtana | Brno
    Rozbalit Rozbalit vše Re: Java: mezery v zapsaném souboru (začátečník)

    Díky. Myslel jsem si správně, že právě tam bude problém. Po přepnutí editoru do UTF-16 se text zobrazil správně. K vyřešení mi pomohla následující metoda z diskuse u FAQ na jGuru:

    /* convert from internal Java String Format -> UTF-8 encoded HTML/JSP-Pages  */
    public static String convertToUTF8(String s) {
      String out = null;
      try {
        out = new String(s.getBytes("UTF-8"));
      } catch (java.io.UnsupportedEncodingException e) {
        return null;
      }
      return out;
    }

    Nyní string před zápisem překóduji na UTF-8 a je po problému.

    5.8.2009 15:37 ZAH | skóre: 43 | blog: ZAH
    Rozbalit Rozbalit vše Re: Java: mezery v zapsaném souboru (začátečník)
    Dle mne je nejjednodušší použít třídu java.io.OutputStreamWriter a její podtřídy. Viz konstruktory
    OutputStreamWriter(OutputStream out)
              Creates an OutputStreamWriter that uses the default character encoding.
    OutputStreamWriter(OutputStream out, Charset cs)
              Creates an OutputStreamWriter that uses the given charset.
    OutputStreamWriter(OutputStream out, CharsetEncoder enc)
              Creates an OutputStreamWriter that uses the given charset encoder.
    OutputStreamWriter(OutputStream out, String charsetName)
              Creates an OutputStreamWriter that uses the named charset.
    
    5.8.2009 15:26 ZAH | skóre: 43 | blog: ZAH
    Rozbalit Rozbalit vše Re: Java: mezery v zapsaném souboru (začátečník)
    Problém bude při zápisu do souboru. Pošlete sem kód, kterým zapisujete. Jinak podobné texty je nejlépe normálně uložit jako textový soubor do balíku programu. Stream se zdrojem získáte ve třídě pomocí this.getClass.getResourceAsStream(fileName);
    5.8.2009 21:03 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Java: mezery v zapsaném souboru (začátečník)
    Nepoužívejte DataOutputStream, ale Writer, zde se konkrétně bude hodit PrintWriter. Při vytváření je vhodné nadefinovat kódování souboru, jinak se použije kódování platformy (což bude správně, pokud je počítač, kde spouštíte program, zároveň cílovým počítačem pro skripty a je tam správně nastavené locale; ale je to nevhodné,pokud chcete výstupní kódování nějak řídit). DataOutputStream slouží k serializaci Java objektů.
    6.8.2009 00:06 Jan Grmela | skóre: 45 | blog: Kilo šťávy z lachtana | Brno
    Rozbalit Rozbalit vše Re: Java: mezery v zapsaném souboru (začátečník)
    Díky za reakce, někdy se opravdu nevyplácí webové tutorialy typu "Writing files in Java" brát moc vážně :-)

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.