@@ -47,6 +47,13 @@ const App: () => React$Node = () => {
47
47
const [ hashPathParam , setHashPathParam ] = useState ( '' ) ;
48
48
const [ hashAlgValue , setHashAlgValue ] = useState ( 'md5' ) ;
49
49
50
+ const [ writeParam , setWriteParam ] = useState ( '' ) ;
51
+ const [ writeURIParam , setWriteURIParam ] = useState ( '' ) ;
52
+ const [ writeEncodeParam , setWriteEncodeParam ] = useState ( 'utf8' ) ;
53
+
54
+ const [ writeStreamParam , setWriteStreamParam ] = useState ( '' ) ;
55
+ const [ writeEncodeStreamParam , setWriteStreamEncodeParam ] = useState ( 'utf8' ) ;
56
+
50
57
// Methods ********************************************************************
51
58
// exists()
52
59
const existsCall = ( ) => {
@@ -223,6 +230,109 @@ const App: () => React$Node = () => {
223
230
} ) ;
224
231
}
225
232
233
+
234
+ // writeFile()
235
+ const writeFileCall = ( ) => {
236
+ if ( writeParam . length > 0 ) {
237
+ if ( writeEncodeParam === 'uri' ) {
238
+ if ( writeURIParam . length > 0 ) {
239
+ RNFetchBlob . fs . writeFile ( RNFetchBlob . fs . dirs . DocumentDir + '/' + writeParam ,
240
+ RNFetchBlob . fs . dirs . DocumentDir + '/' + writeURIParam ,
241
+ writeEncodeParam ) ;
242
+ }
243
+ else {
244
+ Alert . alert ( 'uri path undefined' ) ;
245
+ }
246
+ }
247
+ else if ( writeEncodeParam === 'ascii' ) {
248
+ RNFetchBlob . fs . writeFile ( RNFetchBlob . fs . dirs . DocumentDir + '/' + writeParam , [ 102 , 111 , 111 ] , writeEncodeParam ) ;
249
+ }
250
+ else {
251
+ RNFetchBlob . fs . writeFile ( RNFetchBlob . fs . dirs . DocumentDir + '/' + writeParam , 'foo' , writeEncodeParam ) ;
252
+ }
253
+ }
254
+ }
255
+
256
+ // appendFile()
257
+ const appendFileCall = ( ) => {
258
+ if ( writeParam . length > 0 ) {
259
+ if ( writeEncodeParam === 'uri' ) {
260
+ if ( writeURIParam . length > 0 ) {
261
+ RNFetchBlob . fs . appendFile ( RNFetchBlob . fs . dirs . DocumentDir + '/' + writeParam ,
262
+ RNFetchBlob . fs . dirs . DocumentDir + '/' + writeURIParam ,
263
+ writeEncodeParam ) ;
264
+ }
265
+ else {
266
+ Alert . alert ( 'uri path undefined' ) ;
267
+ }
268
+ }
269
+ else if ( writeEncodeParam === 'ascii' ) {
270
+ RNFetchBlob . fs . appendFile ( RNFetchBlob . fs . dirs . DocumentDir + '/' + writeParam , [ 102 , 111 , 111 ] , writeEncodeParam ) ;
271
+ }
272
+ else {
273
+ RNFetchBlob . fs . appendFile ( RNFetchBlob . fs . dirs . DocumentDir + '/' + writeParam , 'foo' , writeEncodeParam ) ;
274
+ }
275
+ }
276
+ }
277
+
278
+ const writeStreamCall = ( ) => {
279
+ if ( writeStreamParam . length > 0 ) {
280
+ if ( writeEncodeStreamParam === 'base64' ) {
281
+ RNFetchBlob . fs . writeStream ( RNFetchBlob . fs . dirs . DocumentDir + '/' + writeStreamParam , writeEncodeStreamParam , false )
282
+ . then ( ( stream ) => {
283
+ stream . write ( 'Zm9vIChXcml0ZSBCYXNlNjQpMQ==' ) ;
284
+ stream . write ( 'Zm9vIChXcml0ZSBCYXNlNjQpMg==' ) ;
285
+ return stream . close ( ) ;
286
+ } ) ;
287
+ }
288
+ else if ( writeEncodeStreamParam === 'ascii' ) {
289
+ RNFetchBlob . fs . writeStream ( RNFetchBlob . fs . dirs . DocumentDir + '/' + writeStreamParam , writeEncodeStreamParam , false )
290
+ . then ( ( stream ) => {
291
+ stream . write ( [ 102 , 111 , 111 , 32 , 40 , 87 , 114 , 105 , 116 ] ) ;
292
+ stream . write ( [ 101 , 32 , 97 , 115 , 99 , 105 , 105 , 41 ] ) ;
293
+ return stream . close ( ) ;
294
+ } ) ;
295
+ }
296
+ else {
297
+ RNFetchBlob . fs . writeStream ( RNFetchBlob . fs . dirs . DocumentDir + '/' + writeStreamParam , writeEncodeStreamParam , false )
298
+ . then ( ( stream ) => {
299
+ stream . write ( 'foo (Write utf8)1' ) ;
300
+ stream . write ( 'foo (Write utf8)2' ) ;
301
+ return stream . close ( ) ;
302
+ } ) ;
303
+ }
304
+ }
305
+ }
306
+
307
+ const appendStreamCall = ( ) => {
308
+ if ( writeStreamParam . length > 0 ) {
309
+ if ( writeEncodeStreamParam === 'base64' ) {
310
+ RNFetchBlob . fs . writeStream ( RNFetchBlob . fs . dirs . DocumentDir + '/' + writeStreamParam , writeEncodeStreamParam , true )
311
+ . then ( ( stream ) => {
312
+ stream . write ( 'Zm9vIChBcHBlbmQgQmFzZTY0KTE=' ) ;
313
+ stream . write ( 'Zm9vIChBcHBlbmQgQmFzZTY0KTI=' ) ;
314
+ return stream . close ( ) ;
315
+ } ) ;
316
+ }
317
+ else if ( writeEncodeStreamParam === 'ascii' ) {
318
+ RNFetchBlob . fs . writeStream ( RNFetchBlob . fs . dirs . DocumentDir + '/' + writeStreamParam , writeEncodeStreamParam , true )
319
+ . then ( ( stream ) => {
320
+ stream . write ( [ 102 , 111 , 111 , 32 , 40 ] ) ;
321
+ stream . write ( [ 65 , 112 , 112 , 101 , 110 , 100 , 32 , 65 , 83 , 67 , 73 , 73 , 41 ] ) ;
322
+ return stream . close ( ) ;
323
+ } ) ;
324
+ }
325
+ else {
326
+ RNFetchBlob . fs . writeStream ( RNFetchBlob . fs . dirs . DocumentDir + '/' + writeStreamParam , writeEncodeStreamParam , true )
327
+ . then ( ( stream ) => {
328
+ stream . write ( 'foo (Append utf8)1' ) ;
329
+ stream . write ( 'foo (Append utf8)2' ) ;
330
+ return stream . close ( ) ;
331
+ } ) ;
332
+ }
333
+ }
334
+ }
335
+
226
336
// App ************************************************************************
227
337
return (
228
338
< >
@@ -506,6 +616,87 @@ const App: () => React$Node = () => {
506
616
/>
507
617
</ View >
508
618
</ View >
619
+
620
+ < View style = { styles . body } >
621
+ < View style = { styles . sectionContainer } >
622
+ < Text style = { styles . sectionTitle } >
623
+ { "write - writeFile(), appendFile()" }
624
+ </ Text >
625
+ < View style = { styles . sectionDescription } >
626
+ < TextInput style = { styles . input }
627
+ placeholder = "Source path"
628
+ onChangeText = { writeParam => setWriteParam ( writeParam ) }
629
+ placeholderTextColor = "#9a73ef"
630
+ autoCapitalize = "none"
631
+ />
632
+ < TextInput style = { styles . input }
633
+ placeholder = "Source path"
634
+ onChangeText = { writeURIParam => setWriteURIParam ( writeURIParam ) }
635
+ placeholderTextColor = "#9a73ef"
636
+ autoCapitalize = "none"
637
+ />
638
+ < Picker
639
+ writeEncodeStreamParam = { writeEncodeParam }
640
+ onChangeText = { readPositionParam => setReadPositionParam ( readPositionParam ) }
641
+ style = { { height : 50 , width : 150 } }
642
+ onValueChange = { ( itemValue , itemIndex ) => setWriteEncodeParam ( itemValue ) }
643
+ >
644
+ < Picker . Item label = "UTF8" value = "utf8" />
645
+ < Picker . Item label = "Base64" value = "base64" />
646
+ < Picker . Item label = "ASCII" value = "ascii" />
647
+ < Picker . Item label = "URI" value = "uri" />
648
+ </ Picker >
649
+ </ View >
650
+ < Button
651
+ title = "Write"
652
+ color = "#9a73ef"
653
+ onPress = { writeFileCall }
654
+ />
655
+ < Button
656
+ title = "Append"
657
+ color = "#9a73ef"
658
+ onPress = { appendFileCall }
659
+ />
660
+ </ View >
661
+ </ View >
662
+
663
+ < View style = { styles . body } >
664
+ < View style = { styles . sectionContainer } >
665
+ < Text style = { styles . sectionTitle } >
666
+ { "WriteStream - writeStream()" }
667
+ </ Text >
668
+ < View style = { styles . sectionDescription } >
669
+ < TextInput style = { styles . input }
670
+ placeholder = "Source path"
671
+ onChangeText = { writeStreamParam => setWriteStreamParam ( writeStreamParam ) }
672
+ placeholderTextColor = "#9a73ef"
673
+ autoCapitalize = "none"
674
+ />
675
+
676
+ < Picker
677
+ writeEncodeStreamParam = { writeEncodeStreamParam }
678
+ onChangeText = { readPositionParam => setReadPositionParam ( readPositionParam ) }
679
+ style = { { height : 50 , width : 150 } }
680
+ onValueChange = { ( itemValue , itemIndex ) => setWriteStreamEncodeParam ( itemValue ) }
681
+ >
682
+ < Picker . Item label = "UTF8" value = "utf8" />
683
+ < Picker . Item label = "Base64" value = "base64" />
684
+ < Picker . Item label = "ASCII" value = "ascii" />
685
+ < Picker . Item label = "URI" value = "uri" />
686
+ </ Picker >
687
+ </ View >
688
+ < Button
689
+ title = "Write"
690
+ color = "#9a73ef"
691
+ onPress = { writeStreamCall }
692
+ />
693
+ < Button
694
+ title = "Append"
695
+ color = "#9a73ef"
696
+ onPress = { appendStreamCall }
697
+ />
698
+ </ View >
699
+ </ View >
509
700
510
701
</ ScrollView >
511
702
</ SafeAreaView >
0 commit comments