Last active
February 29, 2016 14:16
-
-
Save Cartman0/324ac60b46d2c318427d to your computer and use it in GitHub Desktop.
Java のPrintWriter とScanner を使ったCSVファイルの入出力(ReaderとWriter)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package csvwriterreader; | |
import java.io.PrintWriter; | |
import java.io.File; | |
import java.io.FileNotFoundException; | |
public class CSVPrintWriter { | |
PrintWriter pw_; | |
// Constructor | |
public CSVPrintWriter(String fileName) { | |
try { | |
this.pw_ = new PrintWriter(fileName); | |
} catch (FileNotFoundException fnex) { | |
fnex.printStackTrace(); | |
} | |
} | |
public CSVPrintWriter(File file) { | |
try { | |
this.pw_ = new PrintWriter(file); | |
} catch (FileNotFoundException fnex) { | |
fnex.printStackTrace(); | |
} | |
} | |
public void close() { | |
this.pw_.close(); | |
} | |
public void print(Object arg) { | |
synchronized (this.pw_) { | |
this.pw_.print(arg); | |
this.pw_.print(","); | |
} | |
} | |
public void println(Object... args) { | |
synchronized (this.pw_) { | |
for (int i = 0; i < args.length; i++) { | |
this.pw_.print(args[i]); | |
this.pw_.print(","); | |
} | |
this.pw_.println(); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package csvwriterreader; | |
import java.io.File; | |
import java.io.FileNotFoundException; | |
import java.io.InputStream; | |
import java.util.ArrayList; | |
import java.util.Scanner; | |
public class CSVScanner { | |
Scanner scan_; | |
// Constructor | |
public CSVScanner(File source) { | |
try { | |
this.scan_ = new Scanner(source); | |
} catch (FileNotFoundException fnex) { | |
fnex.printStackTrace(); | |
} | |
} | |
public CSVScanner(String source) { | |
this.scan_ = new Scanner(source); | |
} | |
public CSVScanner(InputStream source) { | |
this.scan_ = new Scanner(source); | |
} | |
public ArrayList<String[]> read() { | |
ArrayList<String[]> csv_list = new ArrayList<>(); | |
String[] line_str_arr; | |
synchronized (this.scan_) { | |
while (this.scan_.hasNext()) { | |
line_str_arr = this.scan_.nextLine().split(","); | |
csv_list.add(line_str_arr); | |
} | |
} | |
return csv_list; | |
} | |
public void close() { | |
this.scan_.close(); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package csvwriterreader; | |
import java.io.File; | |
import java.util.ArrayList; | |
import java.util.Arrays; | |
public class CSVWriterReader { | |
/** | |
* main | |
* @param args the command line arguments | |
*/ | |
public static void main(String[] args) { | |
String file_name = "test.csv"; | |
{ | |
/*write CSV*/ | |
CSVPrintWriter csvpw = new CSVPrintWriter(file_name); | |
csvpw.println(100, "Sato"); | |
csvpw.println(101, "Suzuki"); | |
csvpw.println(102, "Tanaka"); | |
csvpw.close(); | |
} | |
{ | |
/*read CSV*/ | |
CSVScanner csvscan = new CSVScanner(new File(file_name)); | |
ArrayList<String[]> csv_data = csvscan.read(); | |
csv_data.stream().forEach( | |
line->System.out.println(Arrays.toString(line)) | |
); | |
csvscan.close(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment