@@ -69,32 +69,45 @@ static void writeFile(String path, String encoding, String data, final boolean a
69
69
}
70
70
}
71
71
72
- FileOutputStream fout = new FileOutputStream (f , append );
73
72
// write data from a file
74
73
if (encoding .equalsIgnoreCase (RNFetchBlobConst .DATA_ENCODE_URI )) {
75
74
String normalizedData = normalizePath (data );
76
75
File src = new File (normalizedData );
77
76
if (!src .exists ()) {
78
77
promise .reject ("ENOENT" , "No such file '" + path + "' " + "('" + normalizedData + "')" );
79
- fout .close ();
80
78
return ;
81
79
}
82
- FileInputStream fin = new FileInputStream (src );
83
80
byte [] buffer = new byte [10240 ];
84
81
int read ;
85
82
written = 0 ;
86
- while ((read = fin .read (buffer )) > 0 ) {
87
- fout .write (buffer , 0 , read );
88
- written += read ;
83
+ FileInputStream fin = null ;
84
+ FileOutputStream fout = null ;
85
+ try {
86
+ fin = new FileInputStream (src );
87
+ fout = new FileOutputStream (f , append );
88
+ while ((read = fin .read (buffer )) > 0 ) {
89
+ fout .write (buffer , 0 , read );
90
+ written += read ;
91
+ }
92
+ } finally {
93
+ if (fin != null ) {
94
+ fin .close ();
95
+ }
96
+ if (fout != null ) {
97
+ fout .close ();
98
+ }
89
99
}
90
- fin .close ();
91
100
}
92
101
else {
93
102
byte [] bytes = stringToBytes (data , encoding );
94
- fout .write (bytes );
95
- written = bytes .length ;
103
+ FileOutputStream fout = new FileOutputStream (f , append );
104
+ try {
105
+ fout .write (bytes );
106
+ written = bytes .length ;
107
+ } finally {
108
+ fout .close ();
109
+ }
96
110
}
97
- fout .close ();
98
111
promise .resolve (written );
99
112
} catch (FileNotFoundException e ) {
100
113
// According to https://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html
@@ -129,12 +142,15 @@ static void writeFile(String path, ReadableArray data, final boolean append, fin
129
142
}
130
143
131
144
FileOutputStream os = new FileOutputStream (f , append );
132
- byte [] bytes = new byte [data .size ()];
133
- for (int i =0 ;i <data .size ();i ++) {
134
- bytes [i ] = (byte ) data .getInt (i );
145
+ try {
146
+ byte [] bytes = new byte [data .size ()];
147
+ for (int i = 0 ; i < data .size (); i ++) {
148
+ bytes [i ] = (byte ) data .getInt (i );
149
+ }
150
+ os .write (bytes );
151
+ } finally {
152
+ os .close ();
135
153
}
136
- os .write (bytes );
137
- os .close ();
138
154
promise .resolve (data .size ());
139
155
} catch (FileNotFoundException e ) {
140
156
// According to https://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html
0 commit comments