forked from I2P_Developers/i2p.i2p
119 lines
2.8 KiB
Java
119 lines
2.8 KiB
Java
package net.i2p.aum;
|
|
|
|
import java.io.File;
|
|
import java.io.FileNotFoundException;
|
|
import java.io.IOException;
|
|
import java.io.RandomAccessFile;
|
|
|
|
/**
|
|
* SimpleFile - subclass of File which adds some python-like
|
|
* methods. Cuts out a lot of the red tape involved with reading
|
|
* from and writing to files
|
|
*/
|
|
public class SimpleFile {
|
|
|
|
public RandomAccessFile _file;
|
|
public String _path;
|
|
|
|
public SimpleFile(String path, String mode) throws FileNotFoundException {
|
|
|
|
_path = path;
|
|
_file = new RandomAccessFile(path, mode);
|
|
}
|
|
|
|
public byte [] readBytes() throws IOException {
|
|
return readBytes((int)_file.length());
|
|
}
|
|
|
|
public byte[] readBytes(int n) throws IOException {
|
|
byte [] buf = new byte[n];
|
|
_file.readFully(buf);
|
|
return buf;
|
|
}
|
|
|
|
public char [] readChars() throws IOException {
|
|
return readChars((int)_file.length());
|
|
}
|
|
|
|
public char[] readChars(int n) throws IOException {
|
|
char [] buf = new char[n];
|
|
//_file.readFully(buf);
|
|
return buf;
|
|
}
|
|
|
|
/**
|
|
* Reads all remaining content from the file
|
|
* @return the content as a String
|
|
* @throws IOException
|
|
*/
|
|
public String read() throws IOException {
|
|
|
|
return read((int)_file.length());
|
|
}
|
|
|
|
/**
|
|
* Reads one or more bytes of data from the file
|
|
* @return the content as a String
|
|
* @throws IOException
|
|
*/
|
|
public String read(int nbytes) throws IOException {
|
|
|
|
return new String(readBytes(nbytes));
|
|
}
|
|
|
|
/**
|
|
* Writes one or more bytes of data to a file
|
|
* @param buf a String containing the data to write
|
|
* @return the number of bytes written, as an int
|
|
* @throws IOException
|
|
*/
|
|
public int write(String buf) throws IOException {
|
|
|
|
return write(buf.getBytes());
|
|
}
|
|
|
|
public int write(byte [] buf) throws IOException {
|
|
|
|
_file.write(buf);
|
|
return buf.length;
|
|
}
|
|
|
|
/**
|
|
* convenient one-hit write
|
|
* @param path pathname of file to write to
|
|
* @param buf data to write
|
|
*/
|
|
public static int write(String path, String buf) throws IOException {
|
|
return new SimpleFile(path, "rws").write(buf);
|
|
}
|
|
|
|
/**
|
|
* tests if argument refers to an actual file
|
|
* @param path pathname to test
|
|
* @return true if a file, false if not
|
|
*/
|
|
public boolean isFile() {
|
|
return new File(_path).isFile();
|
|
}
|
|
|
|
/**
|
|
* tests if argument refers to a directory
|
|
* @param path pathname to test
|
|
* @return true if a directory, false if not
|
|
*/
|
|
public boolean isDir() {
|
|
return new File(_path).isDirectory();
|
|
}
|
|
|
|
/**
|
|
* tests if a file or directory exists
|
|
* @param path pathname to test
|
|
* @return true if exists, or false
|
|
*/
|
|
public boolean exists() {
|
|
return new File(_path).exists();
|
|
}
|
|
|
|
}
|
|
|