public static byte[] tail(File f, int n) throws IOException {
    """
	Reads the last (up to {@code n}) bytes of the given {@code File}.
	Named after the Unix command of the same name.
	
	@param f the file to read.
	@param n the maximum number of bytes to read.
	
	@return the last bytes of the given {@code File}.
	
	@throws NullPointerException if {@code f} is {@code null}.
	@throws IOException if {@code f} does not exist, or if it is a
	directory rather than a regular file, or if it can't be read.
	@throws SecurityException if a security manager exists and denies
	read access to {@code f}.
    """
		Parameters.checkCondition(n >= 0);
		RandomAccessFile file = new RandomAccessFile(f, "r");
		file.seek(file.length() - n);
		byte[] data = new byte[n];
		file.read(data);
		return data;
	}
public static byte[] tail(File f, int n) throws IOException
	{
		Parameters.checkCondition(n >= 0);
		RandomAccessFile file = new RandomAccessFile(f, "r");
		file.seek(file.length() - n);
		byte[] data = new byte[n];
		file.read(data);
		return data;
	}
public static byte [ ] tail ( File f , int n ) throws IOException { Parameters . checkCondition ( n >= 0 ) ; RandomAccessFile file = new RandomAccessFile ( f , "r" ) ; file . seek ( file . length ( ) - n ) ; byte [ ] data = new byte [ n ] ; file . read ( data ) ; return data ; }
Reads the last (up to {@code n}) bytes of the given {@code File}.
Named after the Unix command of the same name.

@param f the file to read.
@param n the maximum number of bytes to read.

@return the last bytes of the given {@code File}.

@throws NullPointerException if {@code f} is {@code null}.
@throws IOException if {@code f} does not exist, or if it is a
directory rather than a regular file, or if it can't be read.
@throws SecurityException if a security manager exists and denies
read access to {@code f}.
Reads the last ( up to { @code n } ) bytes of the given { @code File } . Named after the Unix command of the same name .