Skip to content

Commit 089ad72

Browse files
committed
Исправлен модуль files
1 parent 46d9f48 commit 089ad72

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

src/com/annimon/ownlang/lib/modules/files.java

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.io.File;
1111
import java.io.FileInputStream;
1212
import java.io.FileOutputStream;
13+
import java.io.FilenameFilter;
1314
import java.io.IOException;
1415
import java.io.InputStreamReader;
1516
import java.io.OutputStreamWriter;
@@ -29,6 +30,7 @@ public void init() {
2930
files = new HashMap<>();
3031

3132
Functions.set("fopen", new fopen());
33+
Functions.set("listFiles", new listFiles());
3234
Functions.set("readBoolean", new readBoolean());
3335
Functions.set("readByte", new readByte());
3436
Functions.set("readBytes", new readBytes());
@@ -52,6 +54,7 @@ public void init() {
5254
Functions.set("writeDouble", new writeDouble());
5355
Functions.set("writeUTF", new writeUTF());
5456
Functions.set("writeLine", new writeLine());
57+
Functions.set("writeText", new writeText());
5558
Functions.set("flush", new flush());
5659
Functions.set("fclose", new fclose());
5760
}
@@ -112,6 +115,19 @@ public Value execute(Value... args) {
112115
protected abstract Value execute(FileInfo fileInfo, Value[] args) throws IOException;
113116
}
114117

118+
private static class listFiles extends FileFunction {
119+
@Override
120+
protected Value execute(FileInfo fileInfo, Value[] args) throws IOException {
121+
final String[] files = fileInfo.file.list();
122+
final int size = files.length;
123+
final ArrayValue result = new ArrayValue(size);
124+
for (int i = 0; i < size; i++) {
125+
result.set(i, new StringValue(files[i]));
126+
}
127+
return result;
128+
}
129+
}
130+
115131
private static class readBoolean extends FileFunction {
116132
@Override
117133
protected Value execute(FileInfo fileInfo, Value[] args) throws IOException {
@@ -314,7 +330,16 @@ protected Value execute(FileInfo fileInfo, Value[] args) throws IOException {
314330
private static class writeLine extends FileFunction {
315331
@Override
316332
protected Value execute(FileInfo fileInfo, Value[] args) throws IOException {
317-
fileInfo.dos.writeDouble(args[1].asNumber());
333+
fileInfo.writer.write(args[1].asString());
334+
fileInfo.writer.newLine();
335+
return NumberValue.ONE;
336+
}
337+
}
338+
339+
private static class writeText extends FileFunction {
340+
@Override
341+
protected Value execute(FileInfo fileInfo, Value[] args) throws IOException {
342+
fileInfo.writer.write(args[1].asString());
318343
return NumberValue.ONE;
319344
}
320345
}

0 commit comments

Comments
 (0)