changeset 12:050ca4732ec9

change getopts method
author Tomoya Uchihara <e165728@ie.u-ryukyu.ac.jp>
date Wed, 15 Nov 2017 15:35:13 +0900
parents 92e9b90046b4
children f7a4926304ce
files src/main/java/jp/ac/uryukyu/ie/e165728/FileWrite.java src/test/java/jp/ac/uryukyu/ie/e165728/FileWriteTest.java
diffstat 2 files changed, 28 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/jp/ac/uryukyu/ie/e165728/FileWrite.java	Thu Nov 09 15:13:09 2017 +0900
+++ b/src/main/java/jp/ac/uryukyu/ie/e165728/FileWrite.java	Wed Nov 15 15:35:13 2017 +0900
@@ -6,13 +6,14 @@
 import java.io.*;
 
 public class FileWrite {
-    public boolean buffer = true;
-    public long fileSize=4096;
+    public boolean isbuffering = true;
+    public int buffersize=0;
+    public long fileSize=1024;
     private String filename = "testData.txt";
     private int writeData = '@';
 
     public boolean isBuffer(){
-        return buffer;
+        return isbuffering;
     }
     public long getFilesize(){
         return fileSize;
@@ -33,18 +34,30 @@
         for (int i = 0;i<args.length;i++){
             switch (args[i]){
                 case "-b":
-                    buffer = true;break;
+                    isbuffering = true;{
+                        if(i+1 <= args.length){
+                            buffersize = Integer.parseInt(args[i+1]);
+                            i++;
+                        }
+                        break;
+                }
                 case "-u":
-                    buffer = false;break;
+                    isbuffering = false;break;
                 case "-s":
                 case "--size":
                     if (i+1 <=args.length){
-                        fileSize = Integer.parseInt(args[i + 1]);
+                        fileSize = Integer.parseInt(args[i+1]);
                         i++;
                     }else{
                         System.out.println("Usage: [--size][filesize]");
                     }
                     break;
+//                case "-bb":
+//                    isbuffering = true;
+//                    if(i+1 <= args.length){
+//                        buffersize = Integer.parseInt(args[i+1]);
+//                        i++;
+//                }
                 case "-h":
                 case "--help":
                     System.out.println("Usage: [-b buffered write] [-u unbuffered write] \n [--size & filesize write filesize] [--help,-h show options]");
@@ -60,8 +73,12 @@
         long size = fileSize;
 
         OutputStream os = new FileOutputStream(filename);
-        if(buffer){
-            os = new BufferedOutputStream(os);
+        if(isbuffering) {
+            if (buffersize > 0)
+                os = new BufferedOutputStream(os, buffersize);
+            else
+                os = new BufferedOutputStream(os);
+
         }
 
         while(written < size){
@@ -71,7 +88,7 @@
 
         os.close();
         long end = System.currentTimeMillis();
-        System.out.println("write "+ size +" bytes in "+ (end - start) + "millisec.");
+        System.out.println("write "+ size +"bytes in "+ (end - start) + " millisec.");
     }
 }
 
--- a/src/test/java/jp/ac/uryukyu/ie/e165728/FileWriteTest.java	Thu Nov 09 15:13:09 2017 +0900
+++ b/src/test/java/jp/ac/uryukyu/ie/e165728/FileWriteTest.java	Wed Nov 15 15:35:13 2017 +0900
@@ -7,10 +7,9 @@
     @Test
     void getOpts() {
         FileWrite fw = new FileWrite();
-        String[] args = {"-b", "12", "--size","1234"};
+        String[] args = {"-b", "1000", "--size","1200"};
         fw.getopts(args);
-        assertEquals(fw.getFilesize(),1234);
+        assertEquals(fw.getFilesize(),1200);
         assertEquals(fw.isBuffer(),true);
-        assertEquals(fw.getFilesize(),123);
     }
 }
\ No newline at end of file