@@ -45,50 +45,53 @@ public Memory __construct(Environment env, Memory... args) throws IOException {
4545 super .__construct (env , args );
4646
4747 try {
48- if (getMode ().equals ("r" )) {
49- accessFile = new RandomAccessFile (getPath (), "r" );
48+ String mode = getMode ();
49+ String path = getPath ();
50+
51+ if (mode .equals ("r" ) || mode .equals ("rb" )) {
52+ accessFile = new RandomAccessFile (path , "r" );
5053 position = 0 ;
51- } else if (getMode () .equals ("r +" )){
52- if (!new File (getPath () ).getAbsoluteFile ().exists ())
54+ } else if (mode . equals ( "r+" ) || mode .equals ("rb +" )){
55+ if (!new File (path ).getAbsoluteFile ().exists ())
5356 throwFileNotFound (env );
54- accessFile = new RandomAccessFile (getPath () , "rw" );
55- } else if (getMode () .equals ("w " )){
56- accessFile = new RandomAccessFile (getPath () , "rw" );
57+ accessFile = new RandomAccessFile (path , "rw" );
58+ } else if (mode . equals ( "w" ) || mode .equals ("wb " )){
59+ accessFile = new RandomAccessFile (path , "rw" );
5760 accessFile .setLength (0 );
5861 canRead = false ;
59- } else if (getMode () .equals ("w +" )){
60- accessFile = new RandomAccessFile (getPath () , "rw" );
62+ } else if (mode . equals ( "w+" ) || mode .equals ("wb +" )){
63+ accessFile = new RandomAccessFile (path , "rw" );
6164 accessFile .setLength (0 );
62- } else if (getMode () .equals ("a" )){
63- accessFile = new RandomAccessFile (getPath () , "rw" );
64- File file = new File (getPath () );
65+ } else if (mode .equals ("a" )){
66+ accessFile = new RandomAccessFile (path , "rw" );
67+ File file = new File (path );
6568 if (file .getAbsoluteFile ().exists ()) {
6669 accessFile .seek (file .length ());
6770 position = file .length ();
6871 }
6972
7073 canRead = false ;
71- } else if (getMode () .equals ("a+" )){
72- accessFile = new RandomAccessFile (getPath () , "rw" );
73- File file = new File (getPath () );
74+ } else if (mode .equals ("a+" )){
75+ accessFile = new RandomAccessFile (path , "rw" );
76+ File file = new File (path );
7477 if (file .getAbsoluteFile ().exists ()){
7578 accessFile .seek (file .length ());
7679 position = file .length ();
7780 }
78- } else if (getMode () .equals ("x" ) || getMode () .equals ("x+" )){
79- File file = new File (getPath () );
81+ } else if (mode .equals ("x" ) || mode .equals ("x+" )){
82+ File file = new File (path );
8083 if (file .getAbsoluteFile ().exists ())
81- env .exception (WrapIOException .class , "File '%s' already exists (mode: %s)" , getMode () );
84+ env .exception (WrapIOException .class , "File '%s' already exists (mode: %s)" , mode );
8285
83- accessFile = new RandomAccessFile (getPath () , "rw" );
84- if (getMode () .equals ("x" ))
86+ accessFile = new RandomAccessFile (path , "rw" );
87+ if (mode .equals ("x" ))
8588 canRead = false ;
86- } else if (getMode () .equals ("c" ) || getMode () .equals ("c+" )){
87- accessFile = new RandomAccessFile (getPath () , "rw" );
88- if (getMode () .equals ("c" ))
89+ } else if (mode .equals ("c" ) || mode .equals ("c+" )){
90+ accessFile = new RandomAccessFile (path , "rw" );
91+ if (mode .equals ("c" ))
8992 canRead = false ;
9093 } else
91- env .exception (WrapIOException .class , "Unsupported mode - '%s'" , getMode () );
94+ env .exception (WrapIOException .class , "Unsupported mode - '%s'" , mode );
9295 } catch (FileNotFoundException e ){
9396 throwFileNotFound (env );
9497 } catch (IOException e ) {
0 commit comments