Προς το περιεχόμενο

Java IO


dominant

Προτεινόμενες αναρτήσεις

Δημοσ.

Java API

http://java.sun.com/j2se/1.4.1/docs/api/

 

StringTokenizer

http://java.sun.com/j2se/1.4.1/docs/api/java/util/StringTokenizer.html

 

Double

http://java.sun.com/j2se/1.4.1/docs/api/java/lang/Double.html

 

θα σου συνιστουσα...να κατεβασεις το API καπου τοπικα..και γενικα να το ψαχνεις..υπαρχουν πολλα method Που θα σου κανουν την ζωη πιο ευκολη!

 

<img src="http://www.insomnia.gr/ubbthreads/images/graemlins/smile.gif" alt="" />

 

  • Απαντ. 32
  • Δημ.
  • Τελ. απάντηση
Δημοσ.

Thanks gia ta references, alla poio API na katevaso <img src="http://www.insomnia.gr/ubbthreads/images/graemlins/smile.gif" alt="" /> Voi8ise me ligaki giati apo Java tora ma8aino.

Δημοσ.

Το Java Standard edition Api!

Η λιστα με ολες τις κλασεις τις μεθοδους τους και αλλες λοιπες πληροφοριες σε μορφη Javadoc!

http://java.sun.com/webapps/download/Redirect/45748658/5847479377282807053505607246086069333228071972022813600060132859339008063305596058473206-3865/j2sdk-1_4_1-doc.zip

 

Αν δεν δουλεψει το παραπανω

πηγαινε εδω

http://java.sun.com/docs/

εκει κατεβασε και το Java Tutorial αλλα και το Java 1.4.1 API! Υπαρχει μεγαλη περιπτωση να το εχεις ειδη στο μηχανημα σου ...

 

επισης μπορεις να βρεις μερικες πληροφοριες εδω (στα ελληνικα)

http://www.members.tripod.com/apoc_gr/java_insomniacs.htm

 

<img src="http://www.insomnia.gr/ubbthreads/images/graemlins/smile.gif" alt="" />

 

 

Welcome στον μαγευτικο κοσμο της Java!

 

Δημοσ.

αγαπητε γιατι δεν πατας στο λινκ που σου εδωσα?

StringTokenizer

http://java.sun.com/j2se/1.4.1/docs/api/java/util/StringTokenizer.html

 

ειναι ξεχωριστη κλαση! Αυτο που κανει ειναι να παιρνει ενα string που περιεχει τιμες χωρισμενες απο καποιον χαρακτηρα η αλληλουχια χαρακτηρων..

και να σoυ δινει πισω Τα επιμερους κομματια!

 

ο παρακατω κωδικας ελπιζω να σε βοηθησει

>
import java.util.*;

public class aTest {
  public aTest() {
 }
  public static void main(String[] args) {
   String s = "Hello:Wow:ILoveJava:IHateMicrosoft:IHateVB";
   StringTokenizer tk = new StringTokenizer(s,":");
   while(tk.hasMoreElements()){
    System.out.println(tk.nextElement());
  }
 }
}

Δημοσ.

Me prolaves!

 

ego dokimasa to parakato

>
import java.io.*;
import java.util.*;

public class Text {
    public static void main(String[] args) throws IOException {
    	
	FileInputStream theFile= 
        new FileInputStream("text.txt");
        
BufferedReader br = new BufferedReader(new InputStreamReader(theFile));



String c=null;
int type;
while((c=br.readLine())!=null) {

StreamTokenizer st = new StreamTokenizer(c," ");	
	
		System.out.println(st);
		
		
	}
	
	
	
	
	
	
	
	
theFile.close();


    }
    
    
    
}


 

alla den anagnorizei ton constructor tou StringTokenizer

Δημοσ.

ωραιος!

 

Αν λοιπον το πρωτο token που διαβαζεις ειναι το ΠΟΣΟΤΗTA τοτε..συνεχισε με το επομενο!Αν οχι τοτε σπας το εσωτερικο whιλε που looparei τα τokens και συνεχιζεις με το επομενο String (γραμμη).

Στον παραπανω κωδικα ακομα δεν εχεις βαλει το nested while αλλα λογικα θα το βαλεις στην επομενη version! <img src="http://www.insomnia.gr/ubbthreads/images/graemlins/smile.gif" alt="" />

Δημοσ.

Fenete sosto omos exei la8os

>
import java.io.*;
import java.util.*;

public class Text {   

 public static void main(String[] args) 
 throws IOException {    	
 
 	FileInputStream theFile=new FileInputStream("text.txt");
 	
 	BufferedReader br = new BufferedReader(new InputStreamReader(theFile));
 	
 	String c=null;int type;
 	
 	while((c=br.readLine())!=null) {
 		
  StreamTokenizer st = new StreamTokenizer(c," ");		
  	
  	
  	while(st.hasMoreElements()){
    System.out.println(st.nextElement());  }	
  	
	}
	
	theFile.close();    }
	
	
        }

 

Errors

>
D:\java\Text.java:17: cannot resolve symbol
symbol  : constructor StreamTokenizer  (java.lang.String,java.lang.String)
location: class java.io.StreamTokenizer
  StreamTokenizer st = new StreamTokenizer(c," ");		
                       ^
D:\java\Text.java:20: cannot resolve symbol
symbol  : method hasMoreElements  ()
location: class java.io.StreamTokenizer
  	while(st.hasMoreElements()){
                ^
D:\java\Text.java:21: cannot resolve symbol
symbol  : method nextElement  ()
location: class java.io.StreamTokenizer
    System.out.println(st.nextElement());  }	
                         ^
3 errors

Process completed.

Δημοσ.

ρε συ dominant δες λιγο το API ξανα! και τον κωδικα που σου ποσταρα!

ειναι StringTokenizer και οχι StreamTokenizer!

ΠΡΟΣΟΧΗ!

 

Δημοσ.

Exeis dikio, sugnomh alla me ta Buffe kai InputStreamReader mperdeutika <img src="http://www.insomnia.gr/ubbthreads/images/graemlins/wink.gif" alt="" />

 

Tora to mono pou menei einai na koito ka8e gramh an to string einai double.

 

Auto ginete me to Double.parseDouble()?

Δημοσ.

η λογικη ειναι η εξης..στο εσωτερικο loop εσυ τωρα βλεπεις τις τιμες..ολα τα τοκεν.Αυτο που θα κανεις ειναι να ελενχεις αν το πρωτο τοκεν ειναι η λεξη ΠΑΡΑΔΟΣΗ ..αν ειναι ..τοτε θα συνεχιζεις στο επομενο το οποιο αν ολα ειναι καλα γραμμενα στο αρχειο...θα πρεπει να ειναι ο αριθμος! Αν τιποτα απο τα παραπανω δεν ειναι θα πρεπει να κανεις Break το εσωτερικο loop και το εξωτερικο while ΠΟυ διαβαζει απο το stream να σου δινει την επομενη γραμμη!

 

Αν ομως βρεις πραγματι το token ΠΑΡΑΔΟΣΗ..οπως ειπα παραπανω ζητας το επομενο και στην συνεχεια αφοθ σου δωσει το String χρησιμοποιεις

 

Double.parseDouble(String s);

 

!ΔΕΣ ΤΟ ΑPI!

 

<img src="http://www.insomnia.gr/ubbthreads/images/graemlins/smile.gif" alt="" />

 

Δημοσ.

Efirmosa to kodika sou os eksis

 

>
while(st.hasMoreElements()){

  Double.parseDouble(st.nextElement());
    }	

omos

>
(java.lang.String) in java.lang.Double cannot be applied to (java.lang.Object)
  	System.out.println(Double.parseDouble(st.nextElement()));

 

To ekana apla na do an douleuei

 

Δημοσ.

λοιπον ενα πολυ αγαρπο παραδειγμα ..ο κωδικας μπροει να γραφτει πιο σωστα..εδω απλα υπολογιζω οτι το αρχειο ειναι παντα σωστα γραμμενο και παντα μετα την ποσοτητα υπαρχει η τιμη

εχω ενα αρχεια test.txt που περιεχει τα εξης!

------------

Test:Hello

Paradosh:Hello

Posotita:27.7

Test:Hello

Paradosh:Hello

Posotita:28.7

Test:Hello

Paradosh:Hello

Posotita:29.7

---------------

και θελω τις ποσοτητες

 

>
import java.io.*;
import java.util.*;

public class aTest {

 public static void main(String[] args) throws IOException {

   FileInputStream theFile=new FileInputStream("c:/test.txt");

  BufferedReader br = new BufferedReader(new InputStreamReader(theFile));
 String c=null;
 int type;
 while((c=br.readLine())!=null) {
       StringTokenizer st = new StringTokenizer(c,":");
       String temp = null;
       while(st.hasMoreElements()){
          temp = (String) st.nextElement();
             if(temp.equals("Posotita")){
                double db = Double.parseDouble((String)st.nextElement());
                System.out.println(db);
                break;
             }
            break;
          }
       }
   theFile.close();
  }
 }

Δημοσ.

Sosta, ayto htan ena diafotistiko paradeigma! thanks.

 

Omos Otan les

>
.. st.hasMoreElements()..

..temp = (String) st.nextElement();...

 

Mporoume na to apofugoume os ekseis?

>
.. st.hasMoreElements()..

..temp = st.nextToken();...

kai na apofugoume to casting?

 

Δημοσ.

ναι ..απλα το HasMorelements ειναι επειδη το Tokenizer μπορει να συμπεριφερθει σαν enumeration (δες Java Collections)

.Δεν υπαρχει διαφορα!

 

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...