Java - načtení čísla ze souboru

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
muliku
Začátečník
Začátečník
Uživatelský avatar
Registrován: 05. čer 2009

Java - načtení čísla ze souboru

Příspěvek od muliku »

Ahoj, potřeboval bych poradit takovou triviální věc, ale já na to nemůžu přijít jak se to dělá. Nuže věc se má takle: Potřebuju načíst číslo (třeba 1234) ze souboru vstup.txt.. Když do toho souboru napíšu třeba 1, tak program mi vypíše 49 - to je předpokládám bytová hodnota danného znaku (tudíž max je 255). Já ale potřebuju do souboru napsat 1234 a aby mi program vypsal 1234. Zde je úryvek kódu, který se stará o načítání ze souboru:

FileInputStream in = new FileInputStream("vstup.txt");
int a = in.read();
in.close();
System.out.println(a);

Poradí mi někdo metodu na načtení čísla a ne pouze bytu? Díky :)
Central Processing Unit: Phenom II x4 965 BE Cooler: Scythe Ninja 3 Mother Board: Gigabyte AMD 890G Random Acces Memory: 2x2 Gb DDR III 1600MHz Kingston Graphic Processing Unit: nVidia GeForce GTX660 2Gb Power Suply Unit: Seasonic M12II-620 - 620W Hard Disk Drives: OCZ Agility 3 120GB, Seagate 1TB, Samsung F3 1Tb
yuri.cs
Mírně pokročilý
Mírně pokročilý
Uživatelský avatar
Registrován: 03. led 2007
Bydliště: hl.m. piva
Kontaktovat uživatele:

Re: Java - načtení čísla ze souboru

Příspěvek od yuri.cs »

Pokud mas soubor s prihodnym odradkovanim, tak treba nacist radku a vyseknout ono cislo?

Trida BufferedReader ma metodu ReadLine vracejici String - celou radku. Splitnes ho a pozici ktera te zajima prevedes na, predpokladam, integer.
It will be amazing in case after 10GHz we will see 20GHz, 30GHz and so on, just like we witnessed the thorny way from 10MHz to 33MHz in the eighties. -xbitlabs.com
muliku
Začátečník
Začátečník
Uživatelský avatar
Registrován: 05. čer 2009

Re: Java - načtení čísla ze souboru

Příspěvek od muliku »

To jsi mi moc nepomohl :lol: zas takovej programator nejsem, a rozumim tomu jak koza petrzeli... Nevedel by si spis jak to primo napsat? :)
Central Processing Unit: Phenom II x4 965 BE Cooler: Scythe Ninja 3 Mother Board: Gigabyte AMD 890G Random Acces Memory: 2x2 Gb DDR III 1600MHz Kingston Graphic Processing Unit: nVidia GeForce GTX660 2Gb Power Suply Unit: Seasonic M12II-620 - 620W Hard Disk Drives: OCZ Agility 3 120GB, Seagate 1TB, Samsung F3 1Tb
W3N4
Začátečník
Začátečník
Registrován: 06. srp 2008

Re: Java - načtení čísla ze souboru

Příspěvek od W3N4 »

Nejaka takovato metoda by mela (pokud tam nemam chybu) umet prevest obsah nejakeho souboru na string:

Kód: Vybrat vše

public static String convertResourceToString(String path) {
        StringBuilder sb = null;
        InputStream is = null;

        try {
            is = new FileInputStream(path);
            BufferedReader reader = new BufferedReader(new InputStreamReader(is));
            sb = new StringBuilder();
            String line;

            while ((line = reader.readLine()) != null) {
                sb.append(line).append("\n");
            }
        } catch (IOException e) {
        } finally {
            if (is != null) {
                try {
                    is.close();
                } catch (Exception e) {
                }
            }
        }
        return sb.toString();
    }
Frky
Začátečník
Začátečník
Registrován: 22. čer 2008
Bydliště: Plzeň

Re: Java - načtení čísla ze souboru

Příspěvek od Frky »

Nebylo by lepší dát podmínku hasNextInt?
yuri.cs
Mírně pokročilý
Mírně pokročilý
Uživatelský avatar
Registrován: 03. led 2007
Bydliště: hl.m. piva
Kontaktovat uživatele:

Re: Java - načtení čísla ze souboru

Příspěvek od yuri.cs »

muliku píše:To jsi mi moc nepomohl :lol: zas takovej programator nejsem, a rozumim tomu jak koza petrzeli... Nevedel by si spis jak to primo napsat? :)
Na stribrnem podnose:

Kód: Vybrat vše

/**
     * Pokusi se prevest cislo ze zvoleneho souboru na zvolene poczici na
     * integer.
     * 
     * @param path
     *            Cesta ke ctenemu souboru.
     * @param delimiter
     *            Symbol oddelovace.
     * @param position
     *            Poradi na radce rozdelene oddelovaci.
     * @return Integer reprezenatace cisla.
     * @throws Exception
     *             FNF, IOException a chyba prevodu na integer
     */
    public static int getValueFromFile(final String path,
            final String delimiter, final int position) throws Exception {
        BufferedReader br = new BufferedReader(new FileReader(new File(path)));
        
        String line = "";
        String[] lineElements;
        
        line = br.readLine();

        br.close();
        
        lineElements = line.split(delimiter);
        
        return Integer.valueOf(lineElements[position]);
    }
Priklad volani: getValueFromFile("res/data.dat", " ", 0); -> pokusi se vratit prvni cislo, ktere najde v souboru
It will be amazing in case after 10GHz we will see 20GHz, 30GHz and so on, just like we witnessed the thorny way from 10MHz to 33MHz in the eighties. -xbitlabs.com
Odpovědět

Zpět na „Programování a web“