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

java help


chaos567

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

Δημοσ.

public void writeBinary(FeatureVector[] vectors)

/* Γράφει σε ένα δυαδικό αρχείο με όνομα filename έναν πίνακα vectors που περιέχει

ανύσματα (αντικείμενα της κλάσης FeatureVector). Θυμηθείτε ότι οι συνιστώσες των

διανυσμάτων είναι τύπου double. Από κάθε διάνυσμα θα γράφονται πρώτα οι

συνιστώσες του και μετά η ετικέτα του.

 

public FeatureVector[] readBinary()

/* ∆ιαβάζει από ένα δυαδικό αρχείο με όνομα filename έναν πίνακα διανυσμάτων

vectors και τον επιστρέφει. Θυμηθείτε ότι οι συνιστώσες των διανυσμάτων είναι

τύπου double. Από κάθε διάνυσμα θα διαβάζονται πρώτα οι συνιστώσες του και μετά

η ετικέτα του.

 

Παιδία είχα κάνει post και πριν αλλά από ότι είδα σβήστηκε για ευνόητους λόγους. Αν μπορεί να βοηθήσει κανείς θα το εκτιμούσα. (Όταν λέω αν μπορεί κανείς να βοηθήσει δεν ζητάω υποχρεωτικά να μου το λήσετε. Οποιοδήποτε είδος βοήθειας π.χ links ή έστω κάποιο κομμάτι από τα ερωτήματα θα βοηθήσει.)

Σας ευχαριστώ για το χρόνο σας.

Δημοσ.

Θεωρώ πως σαν πρώτο βήμα είναι να κοιτάξεις την κλάση RandomAccessFile για να σε βοηθήσει να δημιουργήσεις ένα δυαδικό αρχείο. Θα σου γράψω λίγο κώδικα για να καταλάβεις πως το εννοώ, αλλά είναι περισσότερο θεωρητικός και όχι πρακτικός δηλαδή μάλλον δεν δουλεύει.

 

>
public void writeBinary(FeatureVector[] vectors)
{
String Filename = getFilename();
String mode = "rw";
try
{
	RandomAccessFile _file = new RandomAccessFile(Filename, mode);
	/* Loop to write the records. */
	for(int i = 0; i < vectors.size(); i++)
		_file.write(vectors.at(i));

	System.Exit(0);
}
catch (IOException ioException)
{
	/* Error Code. */
}
/* Close File. */
_file.Close();
}

 

Ο κώδικας αποκλείεται να δουλεύει να φανταστείς δεν έχω ιδιαίτερες γνώσεις στην Java, δεν έχω βάλει καν κάποιο Java IDE για να το τεστάρω αλλά πιστεύω ότι η λογική είναι αυτή, ίσως να χρειαστείς στο γράψιμο των vectors με την χρήση iterators μέσα σε μία for ή σε μία κομψή for_each να γράφεις ξεχωριστά τα ανύσματα.

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

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

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