j2me kullanarak sözlük uygulaması yapmak istiyorum
Bunun içi nsözlük dosyası içinde arama yapıyorum
Fakat InputStream nesnesi ile okuma yaptığımda reset() metodu ile stream i resetlemek zorundayım çünkü Random erişim metodu ( seek() gibi ) yok.
Bunu da şöyle yapıyorum.dosyayı açtığımda mark(file.length()) metodu ile işaretliyorum
reset() dediğimde işaretlediğim yerden itibaren okuma yapıyorum.
Fakat istediğim kayıtları okuyamıyorum
Herbir kayıt 140 bayt. Örn:50. kaydı getir dediğimde bana 40. ı kaydı getiriyo
startapp(){
fcon = (FileConnection) Connector.open(filename,Connector.READ);
if(!fcon.exists()) {
throw new IOException("File does not exist");
}
input = fcon.openInputStream();
if(input.markSupported() == true)
{
input.mark(STREAM_BASLANGICI);
}
}
public String[] oku(int kayitno)
{
String[] temp = new String[2];
try {
String okunan ;
int index;
byte[] bayt = new byte[140];
POSITION = (kayitno - 1) * 140;
input.skip(POSITION);
input.read(bayt, 0, 140);
input.reset();
okunan = new String(bayt);
okunan=okunan.trim();
index = okunan.indexOf(9, 0);
temp[0] = okunan.substring(0, index);
temp[1] = okunan.substring(index + 1, okunan.length());
} catch (IOException ex) {
ex.printStackTrace();
}
return temp;
}
public void BinarySearch(String aranan)
{
int ortanca = 0,temp = 0,alt_sinir = 1,ust_sinir = 5758;
String[] gelen= new String[2];
while(alt_sinir <= ust_sinir)
{
ortanca = (alt_sinir + ust_sinir)/2;
gelen = oku(ortanca);
temp = aranan.compareTo(gelen[0]);
if(temp == 0)
{
//arama başarılı,sonuç bulundu
textBox.setString(gelen[1]);
}
else if(temp > 0) alt_sinir = ortanca + 1;
else ust_sinir = ortanca - 1;
}
System.out.print("bulunamadı");
textBox.setString("bulunamadı...");
}


Alıntı ile Cevapla
</span>
Bookmarks