» »

[NALOGA][Java] Branje vsebine datoteke vzvratno

[NALOGA][Java] Branje vsebine datoteke vzvratno

SkIDiver ::

Besedilo naloge;

Write an application that allows the user to type any number of characters and save them to a file. Then display the file contents backward.


Težave mi dela branje nazaj. Kako se ga lotit?

Gundolf ::

Ni ti treba brati nazaj. Samo prikazati prebrano v obratnem vrstnem redu.

SkIDiver ::

Da, točno to. Napačno sem se izrazil. Še vedno ostaja to težava.

salesky ::

Do katere stopnje prideš?

V datoteko zapišeš vse znake, ki jih uporabnik vnese? No če jih, greš prebrat datoteko v neko tabelo znakov al pa nizov (char,string) in izpisuješ znake od največjega indeksa proti najmanšemu...

Malo kvazi pseudo kode:

preštej število znakov v datoteki
deklariraj tabelo z enakim številom polj
v vsako polje tabele dodaj en znak iz datoteke

sedaj pa for zanko, ki gre od konca proti začetku in vsakič izpišeš trenutno vrednost tabele

To je na hitro iz glave.

LP

SkIDiver ::

Pridem do tu, da zapišem v datoteko. No meni se je zataknilo, ko sem bral iz datoteke v StringBuffer kateri ima metodo reverse samo meni nekako ne uspe zadeve pognat v delovanje.

Ideja s tabelo je dobra samo se je za enkrat še izogibam, ker me muči rešitev s StringBufferjem.

salesky ::

Ja pa sej s stringbufferjem lahko isto nardiš.

maš charAt(int index) metodo, ki ti vrne znak na poziciji INDEX. Tako isto z for zanko greš od zadnjega znaka do sprednjega.

Bom pogledu kaj je s tisto funkcijo reverse.

PS: Kako delaš ti s tem reversom?

če maš

StringBuffer ena = new StringBuffer() in temu dodajaš vsebino iz datoteke poskušaj tako

ena = ena.reverse();

Zgodovina sprememb…

  • spremenil: salesky ()

SkIDiver ::

salesky hvala za nasvet za reverse. Jaz sem pa samo ena.reverse() :\

OK se bom poigral pa bomo vidl kako bo uspelo.

SkIDiver ::

Dela. Še koda.

PS: A ima kdo idejo kako se rešiti Character.toChars(c) metode katero sem uporabil, ker drugače v StringBuffer dodaja ascii kode znakov(vsaj zdi se mi tako-nisem preverjal)?

package chapter16b;

import java.io.*;

public class ReadBackwards {

	public static void main(String[] args) throws Exception {
		
		InputStream istream;
		OutputStream ostream;
		File outFile = new File("Backwards.dat");
		
		int c;
		
		istream = System.in;
		ostream = new FileOutputStream(outFile);
		
		System.out.print("Enter characters: ");
		
		try {
			
			while((c = istream.read()) != -1)
				ostream.write(c);
		}
		catch(IOException e) {
			
			System.err.println("Error: " + e.getMessage());
		}
		finally {
			
			istream.close();
			ostream.close();
		}
		
		try {
			
			istream = new FileInputStream(outFile);
			
			StringBuffer buf = new StringBuffer();
			
			while((c = istream.read()) != -1)
				buf.append(Character.toChars(c));
			
			System.out.println("\nForward: " + buf);
			
			buf = buf.reverse();
			
			System.out.print("Reverse: ");
			
			for(int i = 0; i < buf.length(); i++)
				if(Character.isLetterOrDigit(buf.charAt(i)))
					System.out.print(buf.charAt(i));
		}
		catch(IOException e2) {
			
			System.err.println("Error2: " + e2.getMessage());
		}
		finally {
			
			istream.close();
			//ostream.close();
		}
	}
}

Zgodovina sprememb…

  • spremenil: SkIDiver ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[Java]: replace - slovar v txt

Oddelek: Programiranje
121691 (1549) Spura
»

Printanje na papir java problem

Oddelek: Programiranje
71179 (986) javaMaster
»

[Java] Frekvenca besed

Oddelek: Programiranje
71322 (1176) zila90
»

Java-Izdelek-Nujno

Oddelek: Programiranje
71507 (1279) iggy
»

osnove v Javi - zvezdice

Oddelek: Programiranje
403537 (2759) Tutankhamun

Več podobnih tem