Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V3
Login / opret bruger

Forum \ Programmering og webdesign \ Programmering
Denne tråd er over 6 måneder gammel

Er du sikker på, at du har noget relevant at tilføje?

Hjælp til Java Programmerings Problem.

Af Maxibruger Mathiasped16 | 09-02-2016 11:14 | 2103 visninger | 9 svar, hop til seneste
Hej HOL! Jeg er virkelig ude på dybt vand her. Jeg indrømmer blankt java er ikke ligefrem noget jeg kan finde ud af. Vi har fået en opgave som går ud på at vi skal lave et bank system. hvor vi skal kunne oprette brugere. Den kode har jeg fået til at virke. Jeg har skrevet det hele ned i Arraylister Jeg prøver lige at smide en eksempel ind her String fornavn; ArrayList<String> fornavne = new ArrayList<String>(); System.out.println("Please enter a first name "); fornavn = sc.nextLine(); if(success == true){ fornavne.add(fornavn); try { ObjectOutputStream objOut = new ObjectOutputStream(new FileOutputStream("fornavne.txt")); objOut.writeObject(fornavne); objOut.close(); } catch (Exception e) { e.printStackTrace(); } for (int i = 0; i < fornavne.size(); i++) { System.out.println(fornavne); } Alt det overstående har vi fået til at virke. med User inputs. og den skriver det også fint nok nede i konsollen. og den skriver det fint til en txt fil. Er der nogen af jer som kan assisterer med at Load denne .txt fil ind igen så den rent faktisk gemmer de inputs vi har lavet og ikke overskriver dem hvergang vi køre den på ny. På forhånd MANGE tak!
--
#1
Tux
Guru
09-02-2016 11:37

Rapporter til Admin
Du skal læse filen ind, læse den linje for linje og smide de relevante data ind i en ArrayList Indlæs file, læs linje for linje: http://www.programcreek.com[...] Valider dataen og tilføj til ArrayList.
--
Don't feed the trolls.
--
Sidst redigeret 09-02-2016 11:39
#2
Tux
Guru
09-02-2016 11:45

Rapporter til Admin
Eller misforstår jeg, og du vil tilføre flere navne. I det tilfælde skal du bruge FileOutputStream("fornavne.txt", true) Den parameter er "append", hvilket betyder den tilføjer til filen, fremfor at skrive på linje 1. EDIT: Havde det muligvis rigtigt første gang, under alle omstændigheder har du nu lidt at lege med. Append er kun nødvendigt hvis du iterere igennem ArrayList, hvilket du ikke gør, du skriver objektet.
--
Don't feed the trolls.
--
Sidst redigeret 09-02-2016 11:49
#3
L.T. Hansen
Elite Nørd
09-02-2016 12:27

Rapporter til Admin
Når du skal gemme ekstra brugere/linjer, skal du appende til filen, istedet for bare at skrive. Append - tilføjer data til filen Skrive/Write - overskriver filen med ny data. (Dvs. sletter evt. gammel data).
--
YEAH, har fundet på noget vildt sejt at skrive HER... damn, har bare glemt det ;P
#4
Mathiasped16
Maxibruger
09-02-2016 12:53

Rapporter til Admin
Hold da fest! Append løste en hel del af mine problemer! nu kan jeg skrive flere linjer! jeg takker. Nu er det sidste og eneste problem så bare at Starte med dette input næste gang jeg køre programmet. Min opgave går ud på at jeg laver bankkontoer. Så de skulle helst gerne også være der næste gang en "Ansat" går ind og slår en kunde op ;) Jeg ved det er et Longshot, men jeg har Attached mine 2 filer som jeg arbejder i http://www.filedropper.com[...] Hvis i vil have et kig på koden. ellers hvis i kunne have lyst til at uddybe hvordan jeg får [table]private static void readFile1(File fin) throws IOException { FileInputStream fis = new FileInputStream(fin); //Construct BufferedReader from InputStreamReader BufferedReader br = new BufferedReader(new InputStreamReader(fis)); String line = null; while ((line = br.readLine()) != null { System.out.println(line); } br.close(); Til at virke med koden i #0 sådan som jeg ville forstå det så skulle koden se sådan her ud private static void readFile1(File fornavne.txt) throws IOException { FileInputStream fis = new FileInputStream(fornavne.txt); //Construct BufferedReader from InputStreamReader BufferedReader br = new BufferedReader(new InputStreamReader(fis)); String line = null; while ((line = br.readLine()) != null) { System.out.println(line); } br.close();
--
#5
Tux
Guru
09-02-2016 12:59

Rapporter til Admin
I stedet for "System.out.println", så skal du tilføje linjen en ArrayList, ligesom du gør med input tidligere. Derefter kan du returnere det ArrayList og sætte som det første inden du indlæser nye. Men det er nok nemmere at forstå hvis du ikke bruger det som en funktion.
--
Don't feed the trolls.
--
Sidst redigeret 09-02-2016 13:00
#6
L.T. Hansen
Elite Nørd
09-02-2016 12:59

Rapporter til Admin
#4 - er ikke helt sikker på hvad du vil. men til "Nu er det sidste og eneste problem så bare at Starte med dette input næste gang jeg køre programmet." Det gøres ved at du alleførst i dit program læser din fil ind - med brugerinfo ind i et arrayList, eller hvilken anden datastruktur du nu bruger.
--
YEAH, har fundet på noget vildt sejt at skrive HER... damn, har bare glemt det ;P
#7
Tux
Guru
09-02-2016 13:03

Rapporter til Admin
Jeg har ikke fejlsikret det her, det er udelukkende for forståelse og det er lavet uden at jeg har testet det: http://pastebin.com[...] Den indlæse filen, tilføjer nye man indtaster, og gemmer. Den tager ikke højde for duplikater osv.
--
Don't feed the trolls.
--
Sidst redigeret 09-02-2016 13:07
#8
L.T. Hansen
Elite Nørd
09-02-2016 13:11

Rapporter til Admin
#0 - Hvorfor gør du ikke brug af javas serializable. Så kan du gemme objekter, istedet for selv at skulle læse ind fra en tekst fil, og formatere så de forskllige data bliver indlæst korrekt. I skal måske bruge ascii tekst filer?
--
YEAH, har fundet på noget vildt sejt at skrive HER... damn, har bare glemt det ;P
#9
Mathiasped16
Maxibruger
09-02-2016 13:14

Rapporter til Admin
Tux! Jeg takker meget for hjælpen første del af den kode du skrev virkede, og gjorde præcist det jeg skulle bruge. L.T. Hansen, Æhm. Godt spørgsmål, Som sagt har ingen kendskab til Java. Alt det her har været rent google. Lidt farligt at vælge valgfag man aldrig har prøvet før :P
--

Opret svar til indlægget: Hjælp til Java Programmerings Problem.

Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.

Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.

Opret bruger | Login
NYHEDSBREV
Afstemning