Gå til innhold

Code too large? STOR Array


Anbefalte innlegg

Jeg prøver å lage en array på litt over 11.000 ord. Altså en String array. Problemet er at jeg får feilmeldingen "code too large".

 

Hører noen rykter om at man ikke kan lage en metode i Java som går over 64k?

 

Noen som vet hvordan man løser dette uten at man må spitte arrayen i hue og rævva...?

 

-Chris

Lenke til kommentar
Videoannonse
Annonse

Prøvde å google problemet litt i går. Ligger utrolig lite ute om dette faktisk.

Tror ikke problemet ligger i selve arrayen, men i metoden arrayen befinner seg i. Det er i linjen jeg oppretter metoden feilmeldingen kommer også.

Det sies at i Java, kan ingen metoder være større enn 64k...

 

Løsningen kan være å linke arrayen ut til en ekstern tekstfil, som leses når metoden kjøres, men det har jeg ikke anelse om hvordan man gjør...

 

Noen med skills der ute?

 

-Chris

Lenke til kommentar

Det er lite sannsynlig at du får en feilmelding som bare sier "code too large". VM'en pleier kaste en Exception. Det er _svært_ lite sannsynlig at din metode er over 64kb, da 64kb tilsvarer side etter side med Java kode. Istedenfor å være vanskelig kan du bare liste opp koden så kan kanskje noen hjelpe deg.

Lenke til kommentar

Hei!

 

Har du hardkodet tabellen i java filen? Det høres sånn ut: "code too large". I så fall er løsningen er å ha ordene dine i en ekstern fil for så å lese dem inn i en tabell.

Størrelsen på en tabell er vel kun begrenset av minnet ditt, eller eventuelt størrelsen på en int (siden tabell.length gir deg en int)...

Har laget et testprogram som lager en tabell på rundt 10000 elementer og jeg får samme feilen.

Håper dette hjelper..

 

Yngve Devik Hammersland

Lenke til kommentar
  • 2 uker senere...

Koden under forutsetter at du har en tekstfil som ser sånn ut:

 

tekst1

tkest2

tekst3

tekstn

tekst11000

 

import java.io.*;
import java.util.*;
...
FileReader fr = new FileReader("filename.txt");
BufferedReader br = new BufferedReader(fr);
Vector vecStrings = new Vector(11000);/* 11000 i startstørrelse, øker automatisk hvis det trengs */
while(br.ready()) {
  vecStrings.add(br.readLine());
}
br.close();
...

 

Det er en toArray() metode i vector klassen, evt så kan du bruke get(int) metoden for å hente ut en og en String.

Endret av blackbrrd
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...