fix: some stupid mistakes in FS
This commit is contained in:
parent
1b2068a274
commit
7a301eba8f
@ -1,41 +1,41 @@
|
|||||||
package me.topchetoeu.jscript.filesystem;
|
package me.topchetoeu.jscript.filesystem;
|
||||||
|
|
||||||
import me.topchetoeu.jscript.Buffer;
|
import me.topchetoeu.jscript.Buffer;
|
||||||
|
|
||||||
public interface File {
|
public interface File {
|
||||||
int read(byte[] buff);
|
int read(byte[] buff);
|
||||||
void write(byte[] buff);
|
void write(byte[] buff);
|
||||||
long getPtr();
|
long getPtr();
|
||||||
void setPtr(long offset, int pos);
|
void setPtr(long offset, int pos);
|
||||||
void close();
|
void close();
|
||||||
Mode mode();
|
Mode mode();
|
||||||
|
|
||||||
default String readToString() {
|
default String readToString() {
|
||||||
setPtr(0, 2);
|
setPtr(0, 2);
|
||||||
long len = getPtr();
|
long len = getPtr();
|
||||||
if (len < 0) return null;
|
if (len < 0) return null;
|
||||||
|
|
||||||
setPtr(0, 0);
|
setPtr(0, 0);
|
||||||
|
|
||||||
byte[] res = new byte[(int)len];
|
byte[] res = new byte[(int)len];
|
||||||
read(res);
|
len = read(res);
|
||||||
|
|
||||||
return new String(res);
|
return new String(res);
|
||||||
}
|
}
|
||||||
default String readLine() {
|
default String readLine() {
|
||||||
var res = new Buffer();
|
var res = new Buffer();
|
||||||
var buff = new byte[1];
|
var buff = new byte[1];
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
if (read(buff) == 0) {
|
if (read(buff) == 0) {
|
||||||
if (res.length() == 0) return null;
|
if (res.length() == 0) return null;
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (buff[0] == '\n') break;
|
if (buff[0] == '\n') break;
|
||||||
|
|
||||||
res.write(res.length(), buff);
|
res.write(res.length(), buff);
|
||||||
}
|
}
|
||||||
return new String(res.data());
|
return new String(res.data());
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -35,9 +35,9 @@ public class PhysicalFile implements File {
|
|||||||
if (file == null || !perms.readable) throw new FilesystemException(filename, FSCode.NO_PERMISSIONS_R);
|
if (file == null || !perms.readable) throw new FilesystemException(filename, FSCode.NO_PERMISSIONS_R);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (pos == 1) pos += file.getFilePointer();
|
if (pos == 1) offset += file.getFilePointer();
|
||||||
else if (pos == 2) pos += file.length();
|
else if (pos == 2) offset += file.length();
|
||||||
file.seek(pos);
|
file.seek(offset);
|
||||||
}
|
}
|
||||||
catch (IOException e) { throw new FilesystemException(filename, FSCode.NO_PERMISSIONS_R); }
|
catch (IOException e) { throw new FilesystemException(filename, FSCode.NO_PERMISSIONS_R); }
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user