Καλησπερα παιδια,
εδω και καποιες ημερες παλευω για ενα προτζεκτ στη σχολη μου. Εν ολιγοις θελω να φτιαξω μια μηχανη αναζητησης, μικρης κλιμακας. Διαβαζω απο αρχεια, κανω τις δομες μου (HashMaps, TreeMaps, ArrayLists) και χρησιμοποιω και random access files. H στρατιγικη που ακολουθω ειναι να φτιαξω πρωτα τις δομες μου, τις γεμιζω ,με οτι στοιχεια θελω και μετα γραφω στα αρχεια, οπως ζητειται απο την ασκηση. Και εδω ειναι το προβλημα. Εγω θελω να κανω εγγραφες σε 2 αρχεια. Οποτε ανοιγω παραλληλα 2 FileWriters και καθε στοιχειο που παιρνω απο την κυρια δομη μου οπου εχω τις πληροφοριες, το γραφω οπου χρειαζεται. Αλλα τα εχω και τα 2 ανοικτα ταυτοχρονα.
Για μικρα παραδειγματακια, το προγραμμα δουλευει, ειναι τσεκαρισμενο. Το προβλημα ειναι στον χρονο περατωσης. Κανει 36 λεπτα να τελειωσει!! Και αυτο καπου οφειλεται, αλλα που?? Αυτοι oi buffers καθ φορα που γραφω, αποδεσμευουν την μνημη που κρατουσαν πριν και ψαχνουν να βρουν αλλη ωστε να συμπεριλαβουν και τα νεα δεδομενα που βαζω??
Στο τελος καλω για καθε ενα FileWriter το αντιστοιχο close. Τοτε δεν γραφονται στα αρχεια?? Μπορω να τα γραφω σταδιακα και οχι ολα μαζι στο τελος, μηπως γεμιζει ο buffer και για αυτο αργει με το να ψαχνει αν βρει μνημη ξανα και ξανα για το reallocate??
Τι να κανω? Να χρησιμοποιησω την μεθοδο flush() ??
Ευχαριστω





