java - Parse .txt to .csv -


is possible create java program recognizes text in .txt file , write in .csv file? if yes,how start such problem?

my .txt file text1 |text 2 somehow char "|" , split 2 cells.

this simple in java 8:

public static void main(string[] args) throws exception {     final path path = paths.get("path", "to", "folder");     final path txt = path.resolve("myfile.txt");     final path csv = path.resolve("myfile.csv");     try (             final stream<string> lines = files.lines(txt);             final printwriter pw = new printwriter(files.newbufferedwriter(csv, standardopenoption.create_new))) {         lines.map((line) -> line.split("\\|")).                 map((line) -> stream.of(line).collect(collectors.joining(","))).                 foreach(pw::println);     } } 

first files @ path objects.
open printwriter destination path.

now java 8 stream processing lambdas:

  • files.lines(txt) streams lines file
  • map((line) -> line.split("\\|")) splits each line string[] on |
  • map((line) -> stream.of(line).collect(collectors.joining(","))) joins individual string[] again using ,
  • foreach(pw::println) writes new lines destination file.

using import static:

    try (             final stream<string> lines = files.lines(txt);             final printwriter pw = new printwriter(newbufferedwriter(csv, standardopenoption.create_new))) {         lines.map((line) -> line.split("\\|")).                 map((line) -> stream.of(line).collect(joining(","))).                 foreach(pw::println);     } 

as java 8 released yesterday here java 7 solution:

public static void main(string[] args) throws exception {     final path path = paths.get("path", "to", "folder");     final path txt = path.resolve("myfile.txt");     final path csv = path.resolve("myfile.csv");     final charset utf8 = charset.forname("utf-8");     try (             final scanner scanner = new scanner(files.newbufferedreader(txt, utf8));             final printwriter pw = new printwriter(files.newbufferedwriter(csv, utf8, standardopenoption.create_new))) {         while (scanner.hasnextline()) {             pw.println(scanner.nextline().replace('|', ','));         }     } } 

again, import static:

    try (             final scanner scanner = new scanner(newbufferedreader(txt, utf8));             final printwriter pw = new printwriter(newbufferedwriter(csv, utf8, standardopenoption.create_new))) {         while (scanner.hasnextline()) {             pw.println(scanner.nextline().replace('|', ','));         }     } 

Comments

Popular posts from this blog

java - WrongTypeOfReturnValue exception thrown when unit testing using mockito -

php - Magento - Deleted Base url key -

android - How to disable Button if EditText is empty ? -