Mercurial > hg > y16 > e165718 > os > ex2.2
changeset 5:af8bf4f1e294
changelog
author | Hiroki MATSUI <e165718@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 18 Nov 2017 19:26:13 +0900 |
parents | 0077a3ba5c57 |
children | b68bc2505d46 |
files | src/main/java/jp/ac/uryukyu/ie/e165718/FileWrite.java |
diffstat | 1 files changed, 83 insertions(+), 46 deletions(-) [+] |
line wrap: on
line diff
--- a/src/main/java/jp/ac/uryukyu/ie/e165718/FileWrite.java Sat Nov 04 22:04:08 2017 +0900 +++ b/src/main/java/jp/ac/uryukyu/ie/e165718/FileWrite.java Sat Nov 18 19:26:13 2017 +0900 @@ -1,72 +1,109 @@ package jp.ac.uryukyu.ie.e165718; - -import java.io.BufferedOutputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStream; +import java.io.*; public class FileWrite { - private int size; - private boolean buffered; - private int bufferedSize; - public static void main(String args[]) throws IOException { - System.out.println("Hello World!"); - FileWrite fw = new FileWrite(); - fw.getOpts(args); - fw.fileWrite(); + public boolean isbuffering = true; + public long filesize = 4096; + private String filename = "testData.txt"; + private int writeData = '@'; + private int buffer; + private long writeSize = 0; + public boolean isBuffer(){ + return isbuffering; + } + public long getFileSize(){ + return filesize; } - private void fileWrite() throws IOException { - OutputStream writer = this.buffered ? new BufferedOutputStream(new FileOutputStream("hoge.txt"), this.bufferedSize) : new FileOutputStream("hoge.txt"); - for (int i = 0; i < size; i++) { - writer.write('a'); + public static void main(String[] args){ + FileWrite fw = new FileWrite(); + fw.getopts(args); + + try { + fw.writetest(); + }catch (IOException e){ + System.err.println(); } - writer.close(); - } - - public FileWrite() { - } - public void getOpts(String args[]) { - for (int i = 0; i < args.length; i++) { - switch(args[i]) { + public void getopts(String[] args){ + for (int i = 0;i<args.length;i++){ + switch (args[i]){ case "-b": - if (++i >= args.length) { - System.exit(1); + isbuffering = true;break; + case "-bs": + isbuffering = true; + if(i+1 <= args.length){ + buffer = Integer.parseInt(args[i + 1]); + i++; } - buffered = true; - bufferedSize = Integer.parseInt(args[i]); break; case "-u": - buffered = false; - break; + isbuffering = false;break; + case "-s": case "--size": - if (++i >= args.length) { - System.exit(1); + if (i+1 <=args.length){ + filesize = Integer.parseInt(args[i + 1]); + i++; + }else{ + System.out.println("Usage: [--size][filesize]"); } - size = Integer.parseInt(args[i]); break; - case "--help": - case"-h": - System.out.println("help"); - System.exit(0); + case "-help": + case "-h": + System.out.println("Usage: [-b buffered write] [-u unbuffered write] \n [--size & filesize write filesize] [--help,-h show options]"); } } } - public int getSize() { - return size; + void writetest() throws IOException { + long start = System.currentTimeMillis(); + long written = 0; + int data = writeData; + long size = filesize; + + OutputStream os = new FileOutputStream(filename); + if (isBuffer()){ + if(buffer > 0){ + os = new BufferedOutputStream(os, buffer); + } + os = new BufferedOutputStream(os); + } + + while(written < size){ + os.write(data); + written ++; + } + os.close(); + + long end = System.currentTimeMillis(); + System.out.println("write "+size+"bytes in "+ (end -start) + " millisec."); } - public boolean isBuffered() { - return buffered; + private void readTest() throws IOException { + writetest(); + long start = System.currentTimeMillis(); + long readed = 0; + long size = writeSize; + InputStream is = new FileInputStream(filename); + if(isbuffering) { + is = new BufferedInputStream(is); + } + while (readed < size) { + is.read(); + readed++; + } + is.close(); + long end = System.currentTimeMillis(); + System.out.printf("%d byte read time is %dms\n", writeSize, end - start); } - - public int getBufferedSize() { - return bufferedSize; + boolean getIsBuffering(){ + return isbuffering; } -} + long getWriteSize(){ + return writeSize; + } +} \ No newline at end of file