Java, using Scanner to fetch data line by line -
this question has answer here:
- what nullpointerexception, , how fix it? 12 answers
i'm running code:
addressbook.java
/* * change license header, choose license headers in project properties. * change template file, choose tools | templates * , open template in editor. */ package addressbook; import javafx.application.application; import javafx.fxml.fxmlloader; import javafx.scene.parent; import javafx.scene.scene; import javafx.stage.stage; /** * * @author hassan */ public class addressbook extends application { @override public void start(stage stage) throws exception { parent root = fxmlloader.load(getclass().getresource("mainwindow.fxml")); scene scene = new scene(root); stage.setscene(scene); stage.setresizable(false); stage.show(); } /** * @param args command line arguments */ public static void main(string[] args) { launch(args); new addressbookmapper().parsedatafile(); } }
addressbookmapper.java:
/* * change license header, choose license headers in project properties. * change template file, choose tools | templates * , open template in editor. */ package addressbook; import java.io.file; import java.io.filewriter; import java.io.ioexception; import java.io.printwriter; import java.nio.file.files; import java.nio.file.path; import java.nio.file.paths; import java.util.arraylist; import java.util.iterator; import java.util.list; import java.util.scanner; import java.util.regex.pattern; /** * * @author hassan */ public class addressbookmapper { private file datafile; private filewriter filewriter; private printwriter printwriter; public arraylist lines; private void opendatafile() { this.datafile = new file("src/addressbook/datafile.txt"); } public void writedata() { system.out.println(this.lines); iterator iterator = this.lines.iterator(); system.out.println(this.lines.get(0)); while(iterator.hasnext()) { system.out.println(); system.out.println("-----"); } } public void createaddress(string fullname, string email, string telephonenumber, string mobilenumber) { this.opendatafile(); try { this.filewriter = new filewriter(this.datafile, true); this.printwriter = new printwriter(this.filewriter); this.printwriter.append(fullname + "," + email + "," + telephonenumber + "," + mobilenumber + "\n"); this.printwriter.close(); } catch (ioexception e) { e.printstacktrace(); } } public int getlastid() { return 0; } public void parsedatafile() { file datafile = new file("src/addressbook/datafile.txt"); try { scanner scanner = new scanner(datafile, "utf-8").usedelimiter("\\n"); while(scanner.hasnext()) { system.out.println(scanner.next()); } } catch (ioexception e) { e.printstacktrace(); } this.writedata(); } private int findlastaddressid() { return 0; } }
my data file text:
ff,ff,fff,ff krfr,frffr,frfs,ff a,a,b,c d,a,f,e fa,e,f,a
but, reason, output:
ff,ff,fff,ff java.lang.reflect.invocationtargetexception @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) krfr,frffr,frfs,ff a,a,b,c d,a,f,e fa,e,f,a null @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:497) @ com.sun.javafx.application.launcherimpl.launchapplicationwithargs(launcherimpl.java:389) @ com.sun.javafx.application.launcherimpl.launchapplication(launcherimpl.java:328) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:497) @ sun.launcher.launcherhelper$fxhelper.main(launcherhelper.java:767) caused by: java.lang.nullpointerexception @ addressbook.addressbookmapper.writedata(addressbookmapper.java:36) @ addressbook.addressbookmapper.parsedatafile(addressbookmapper.java:69) @ addressbook.addressbook.main(addressbook.java:36) ... 11 more exception running application addressbook.addressbook java result: 1
any solution? trying text data file line line , stack arraylist. also, when writing datafile adds blank line in end of document.
can please try -
while(scanner.hasnext()) { lines.add(scanner.next()); }
Comments
Post a Comment