blob: 53cb974c5768df5fb5b6c410e2ccead91fa49d47 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
/*
* Copyright (c) 2010-2015 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
/*
* Copyright (c) 2015 Tarun Gupta.
* Licensed under the simplified BSD license.
* See Documentation/Licenses/BSD-simplified.txt for more information.
*/
package com.isode.stroke.filetransfer;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import com.isode.stroke.base.ByteArray;
public class FileReadBytestream extends ReadBytestream {
private String file;
private FileInputStream stream;
public FileReadBytestream(final String file) {
this.file = file;
this.stream = null;
}
public ByteArray read(int size) {
try {
if (stream == null) {
stream = new FileInputStream(file);
}
//assert(stream.good());
byte[] buffer = new byte[size];
stream.read(buffer, 0, size);
ByteArray result = new ByteArray(buffer);
onRead.emit(result);
return result;
}
catch (FileNotFoundException e) {
return null;
}
catch (IOException e) {
return null;
} finally {
try {
if(stream != null) stream.close();
}
catch (IOException e) {
// Needs a catch clause
}
}
}
public boolean isFinished() {
return stream != null;
}
}
|