Ukládání matice – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Ukládání matice – Java – Fórum – Programujte.comUkládání matice – Java – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
lekejs0
Newbie
28. 11. 2013   #1
-
0
-

ahoj všichni mám problém z ukládáním matice kterou zadám...

String jmenoSouboru = "test";
            File f = new File("soubor.dat");
            FileOutputStream fos = new FileOutputStream(f);
            DataOutputStream dos = new DataOutputStream(fos);

            dos.close();
            DataInputStream dis = new DataInputStream(new FileInputStream(f));
            int delka = dis.available() / 4;  
            int[] q = new int[delka];
            for (int i = 0; i < delka; i++) {
                q[i] = dis.readInt();
                System.out.println("q[i] = " + q[i]);
            }
            dis.close();
            double[] d = {10.11, 11.11, 22.22, 33.33, 44.44, 55.55};

case 10:
                    System.out.println("");


                    System.out.println("Zadej delku ctvercove matice");
                    int choice = vstup.nextInt();
                    double[][] matrixx = new double[choice][choice];
                    dosazeni2d(matrixx);

                    jmenoSouboru = "Prvky matice";
                    f = new File(jmenoSouboru);
                    fos = new FileOutputStream(f);
                    dos = new DataOutputStream(fos);


                    for (int j = 0; j < choice; j++) {

                        for (int i = 0; i < choice; i++) {
                            dos.writeDouble(matrixx[j][i]);
                        }
                    }
                    dos.close();


                    dis = new DataInputStream(new FileInputStream(f));
                    delka = dis.available() / 200000;  
                    d = new double[delka];
                    for (int j = 0; j < delka; j++) {
                        System.out.println("/n");
                        for (int i = 0; i < delka; i++) {
                            d[i] = dis.readDouble();
                            System.out.println("d[" + i + "] = " + d[i]);
                        }
                    }
                    dis.close();



                    dis = new DataInputStream(new FileInputStream(f));
                    d = new double[delka = 10];
                    for (int i = 0; dis.available() > 0 && i < delka; i++) {
                        d[i] = dis.readDouble();
                        System.out.println("clen cislo[" + (i + 1) + "] = " + d[i]);
                    }
                    System.out.println("");




                    break;
            }
        }

        String soubor = "FavoriteNumber.txt";
        vytvorSoubor(soubor);
        PrintWriter vystup = new PrintWriter(new FileWriter(soubor));
        Scanner vstup = new Scanner(System.in);
        vystup.close();


    }

 public static void vytvorSoubor(String nazev) {

        File soubor;
        try {
            soubor = new File(nazev);
            soubor.createNewFile();
        } catch (IOException vyjimka) {
            System.err.print(vyjimka);
        }
    }

můj problém je v tom, že mi to jen vytvoří soubory ale nic do toho neuloží..

Potřeboval bych vědět jak udělat aby se to ukládalo a dalo se v tom měnit v poznámkovým bloku...

Děkuji moc za jakoukoli pomoc..

Nahlásit jako SPAM
IP: 88.102.134.–
Reklama
Reklama
lekejs0
Newbie
28. 11. 2013   #2
-
0
-

ještě bych to mohl zjednodušit, jak mám udělat aby se ukládalo všechno co mám na konzoli??

To by pro mě asi bylo jednoduší..

Děkuju..

Nahlásit jako SPAM
IP: 88.102.134.–
NotBeginner
~ Anonymní uživatel
181 příspěvků
28. 11. 2013   #3
-
0
-

Zde to máš blbě :

double[][] matrixx = new double[choice][choice];
dosazeni2d(matrixx);
 

metoda dosazení2d  je prakticky nesmysl - vkladaš do nic prazdnou matici ale asi v ní ji naplnuješ( navíc není zveřejně v kódu ) ALE a co je zásadní danou matici z té metody nezískáváš ven. Ona změněná zůstane v té metodě.

Oprava by byla vhodna takto :

matrixx = dosazeni2d(matrixx);
 

a metoda by měla být takto :

private double [][] dosazeni2d(double [][] matrixx) {

...... naplnění matice

 return matrixx;

}
 

Nahlásit jako SPAM
IP: 94.113.80.–
lekejs0
Newbie
5. 12. 2013   #4
-
0
-

ahoj omlouvám se, že jsem nereagoval ale měl jsem problémy s kompem..

Zkusil jsem udělat čtení ze souboru ale potřebuju poradit jak to mám vypsat na konzoli... 

case 11:
                    class MatrixxReader {

                        private static final String DATAFILE = "Save.rtf";
                        private String Data;

                        public  Scanner getScanner() {
                            if (Data == null) {
                                Data = loadToString();
                            }

                            return getScannerFromString(Data);
                        }

                        private String loadToString() {
                            BufferedReader br = new BufferedReader(getDefaultReader());

                            StringBuilder sb = new StringBuilder();

                            String line;
                            try {
                                while ((line = br.readLine()) != null) {
                                    sb.append(Line(line + ","));
                                }
                            } catch (IOException e) {
                                throw new RuntimeException("Error during datafile read.", e);
                            }
                            return sb.toString();
                        }

                        private Reader getDefaultReader() {
                            Reader out;
                            try {
                                out = new FileReader(DATAFILE);
                            } catch (FileNotFoundException e) {
                                throw new RuntimeException("Error, datafile not found.", e);
                            }
                            return out;
                        }

                        public Scanner getScannerFromString(String data) {
                            Scanner out;
                            out = new Scanner(new ByteArrayInputStream(Line(data).getBytes()));
                            out.useLocale(Locale.US);
                            return out;
                        }

                        public String Line(String line) {
                            return line.replace(",", "\n");
                        }
                    }
                    MatrixxReader MR = new MatrixxReader();
                    System.out.println(MR.loadToString());
                    break;

Děkuji za radu...

Nahlásit jako SPAM
IP: 88.102.134.–
lekejs0
Newbie
5. 12. 2013   #5
-
0
-

#3 NotBeginner
já tu metodu dosazeni2d mám takhle..

public class Dosazeni2d {
    
    public static void dosazeniDoRadku(double[] matice) {
        if (matice == null) {
            System.out.println("Promena neukazuje na zadne pole");
        } else if (matice.length == 0) {
            System.out.println("Pole ma nulovou delku");
        }
        for (int i = 0; i < matice.length; i++) {
            int humr = i + 1;
            System.out.println("Zadej " + humr + ". clen");
            System.out.println("");
            Scanner sc = new Scanner(System.in);
            matice[i] = sc.nextFloat();
            System.out.println("");
        }
    }

    public static void dosazeni2d(double[][] matice) {

        for (int i = 0; i < matice.length; i++) {
            int humr = i + 1;
            System.out.println(humr + ". radek:");
            dosazeniDoRadku(matice[i]);
            System.out.println("");
        }
    }
    
}
Nahlásit jako SPAM
IP: 88.102.134.–
NotBeginner
~ Anonymní uživatel
181 příspěvků
5. 12. 2013   #6
-
0
-

Vypis matice typu float :

		for (int i = 0; i < N; i++) {
			for (int j = 0; j < M; j++) {
				System.out.format("%7.2f ", MaticeA[i][j]); }
			System.out.println();	}
Nahlásit jako SPAM
IP: 217.112.161.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 12 hostů

Podobná vlákna

Ukládání do PC — založil metey

Ukládání do *.csv — založil lukinpark

Ukládání do souboru — založil Garret Raziel

Ukladani do souboru — založil Qvido

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý