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

Java IO


dominant

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

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

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

 

Ολα αρχιζουν και τελειωνουν στην παρακατω σελιδα!

http://java.sun.com/docs/books/tutorial/essential/io/filestreams.html

 

Χρησιμοποιεις τα stream αρχειων και διαβαζεις το κειμενο!

 

Εχω μια μικρη υποψια..οτι μπορει να αναφερεσαι σε encoding?Κατα το διαβασμα?

Δημοσ.

Eno apla na exo ena px (text.txt) arxeio to opoeio periexei keimeno kai na apofasizei to prog an auto pou diavazei ka8e fora einai integer h oxi. Kai ton integer na ton apo8ukeuo se pinaka

Δημοσ.
>
  boolean numberIsInteger = true;
  int array []  = new int[1];

  try
  {
    int[0] = Integer.parseInt(<text read from file>);
  }
  catch (NumberFormatException nfe)
  {
    numberIsInteger = false;
  }

  if (numberIsInteger)
  {
    System.out.println("number is: " + array[0]);
  }

Δημοσ.

O kodikas paei kapos etsi

>

import java.io.*;


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

     FileInputStream theFile= 
        new FileInputStream("solid1.txt");

         BufferedInputStream myfile=
        new BufferedInputStream(theFile);

     int c;
     
      while ((c = myfile.readLine()) != -1)
        {boolean numberIsInteger = true;
     int array []  = new int[1];
     
      try  {    
      int[0] = Integer.parseInt(myfile);  } 
      
       catch (NumberFormatException nfe)  {    
       
       numberIsInteger = false;  } 
       
       if (numberIsInteger)  {  
         System.out.println("number is: " + array[0]);  }

}
    
     
     
     
  
     theFile.close();

    }
}

Alla kati paei strava profanos

Δημοσ.

ο παραπανω κωδικας ειναι λαθος!

To BufferedInputStream δεν εχεις readline θελεις την BufferedReader! επισης η readline επιστρεφει String και οχι int!

 

Δες λιγο το API

 

Εισαι κοντα παντως <img src="http://www.insomnia.gr/ubbthreads/images/graemlins/smile.gif" alt="" />

 

Δημοσ.

O kodikas paei kapos etsi

>

import java.io.*;

public class Test {
    public static void main(String[] args) throws IOException {
    	
	FileInputStream theFile= 
        new FileInputStream("text.txt");
        
BufferedReader br = new BufferedReader(new InputStreamReader(theFile));
	
String c=null;
while((c=br.readLine())!=null) System.out.println(c);
theFile.close();


    }
}


 

Blepei os String ta periexomena tou arxeiou. Mporo na koitakso an einai ka8e 8esh (plhn kenou) integer. Endexomenos me casting?

Δημοσ.

θα χρησιμοποιησεις οπως εγραψαν παραπανω την Ιnteger.parseInt και παντα θα προσεχεις για το exception το οποιο θα το πιανεις καιδεν θα το πετας!

 

Δεν ξερω η γραμμη υποτιθεται εχει μονο τον αριθμο η μπορει να εχει μια προταση που μεσα της καπου θα αναφερετε και καποιος αριθμος?

 

Δημοσ.

Ekana to parakato

 

>
mport java.io.*;

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

while((c=br.readLine())!=null) {
	
	for(int q=0;q<c.length();q++) {
			
System.out.print(isDigit(c.charAt(q)));
		}
	}
		
		

theFile.close();


    }
    
    
    
}

 

To provlima einai oti de fenete na douleuei kala to isDigit()

 

Kamia allh idea?

Δημοσ.

Βασικα εχω κατι να σου προτεινω...λιγο πιο καθαρο! Αν και ισως η παραπανω λυση να παιζει σχετικα ανεκτα!

 

Βασικα το θεμα ειναι να ξερεις το format που ειναι γραμμενο αυτο το αρχειο.Πχ αν καθε γραμμη ειχε καποιο standard τροπο γραφης τοτε δεν θα χρειαζοταν να κανεις ολα τα παραπανω!

px

Παραλαβη;26

οπου ξερεις οτι το πρωτο κομματι ειναι παντα το action και το δευτερο ειναι η ποσοτητα. Παρολα αυτα ..εσυ εχεις ελεγχο του πως γραφεται το αρχειο η προερχεται απο αλλη εφαρμογη? Αν εχεις θα στο προτεινα ανεπιφυλακτα να οργανωσεις λιγο το αρχειο. Ακομα πιο καθαρο θα ηταν να γραφεται σε XML !

 

Η λυση που ομολογω οτι δεν εχω καταφερει να την χρησιμοποιησω και εγω πολυ σωστα...γιατι δεν εχω κατσε να την διαβασω ...ειναι τα λεγομενα regular expression.

java.util.regex

 

οπου ο μηχανισμος ειναι εξωτερικα απλος. Δινεις ενα string βαση καποιου Pattern που εχεις δηλωσει...προσπαθει η μεθοδος να βρει ποια σημεια αντιστοιχουν στο Pattern

Px θα μπορουσες να του πεις ψαξε ολο το string για αριθμους! η κατι τετοιο!

 

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

Δημοσ.

Koitakse, to arxeio alla kai ka8e tetoio arxeio exei sugkekrimenei domh px.

 

ΟΝΟΜΑ : ΜΠΛΑ ΜΠΛΑ

ΕΠΙΘΕΤΟ : ΜΠΛΑ ΜΠΛΑ

 

ΠΟΣΟΤΗΤΑ : double

 

 

Ego 8elo na saroso opos kano kai poio pano kai vash kapoiu pattern opos eipes na anikneuso to double alla kai opoiadipote ari8mo(1,2,3,..) h markarismena shmadia px (Α,Β,Γ,..) vriskontai sthn arxh ka8e grammhs.

Δημοσ.

Αν υπαρχει συγκεκριμενη δομη τοτε ακολουθα την!

Αν λοιπον υποθεσουμε οτι υπαρχει η παρακατων δομη!

 

ΟΝΟΜΑ : ΜΠΛΑ ΜΠΛΑ

ΕΠΙΘΕΤΟ : ΜΠΛΑ ΜΠΛΑ

ΠΟΣΟΤΗΤΑ : double

 

σε ξεχωριστες γραμμες! τοτε διαβαζεις καθε γραμμη! Στην συνεχεια χρησιμοποιεις ενα StringTokenizer με tokenizer χαρακτηρα τοn ':' και σου δινει τα διαφορα κομματια! Αν το πρωτο τοκεν ειναι η λεξη ΠΟΣΟΤΗΤΑ τοτε διαβαζεις το δευτερο και με ενα Double.parseDouble παιρνεις την τιμη!

 

και συνεχιζεις να διαβαζεις αναλογα!

 

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

 

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

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

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