|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.jogamp.common.util.IOUtil
public class IOUtil
Field Summary | |
---|---|
static boolean |
DEBUG
|
static String |
java_io_tmpdir_propkey
Std. |
static String |
tmpSubDir
Subdirectory within platform's temporary root directory where all JogAmp related temp files are being stored: jogamp |
static String |
user_home_propkey
|
Method Summary | |
---|---|
static String |
cleanPathString(String path)
|
static void |
close(Closeable stream,
boolean throwRuntimeException)
|
static URL |
compose(String scheme,
String auth,
String path1,
String path2,
String query,
String fragment)
|
static byte[] |
copyStream2ByteArray(InputStream stream)
Copy the specified input stream to a byte array, which is being returned. |
static ByteBuffer |
copyStream2ByteBuffer(InputStream stream)
Copy the specified input stream to a NIO ByteBuffer w/ native byte order, which is being returned. |
static int |
copyStream2File(InputStream in,
File outFile,
int totalNumBytes)
Copy the specified input stream to the specified output file. |
static int |
copyStream2Stream(InputStream in,
OutputStream out,
int totalNumBytes)
Copy the specified input stream to the specified output stream. |
static int |
copyURLConn2File(URLConnection conn,
File outFile)
Copy the specified URL resource to the specified output file. |
static File |
createTempFile(String prefix,
String suffix,
boolean executable,
AccessControlContext acc)
Utilizing File.createTempFile(String, String, File) using
#getTempRoot(AccessControlContext, boolean) as the directory parameter, ie. |
static String |
getBasename(String fname)
Returns the basename of the given fname w/o directory part |
static String |
getClassFileName(String clazzBinName)
|
static URL |
getClassURL(String clazzBinName,
ClassLoader cl)
|
static String |
getDirname(String fname)
Returns unified '/' dirname including the last '/' |
static FileOutputStream |
getFileOutputStream(File file,
boolean allowOverwrite)
|
static String |
getFileSuffix(File file)
Returns the lowercase suffix of the given file name (the text after the last '.' in the file name). |
static String |
getFileSuffix(String filename)
Returns the lowercase suffix of the given file name (the text after the last '.' in the file name). |
static String |
getParentOf(String path)
|
static String |
getRelativeOf(File baseLocation,
String relativeFile)
Generates a path for the 'relativeFile' relative to the 'baseLocation'. |
static URL |
getRelativeOf(URL baseLocation,
String relativeFile)
Generates a path for the 'relativeFile' relative to the 'baseLocation', hence the result is a absolute location. |
static URLConnection |
getResource(Class<?> context,
String resourcePath)
Locating a resource using getResource(String, ClassLoader) :
relative: context 's package name-path plus resourcePath via context 's ClassLoader. |
static URLConnection |
getResource(String resourcePath,
ClassLoader cl)
Locating a resource using the ClassLoader's facilities. |
static File |
getTempDir(boolean executable,
AccessControlContext acc)
Returns a platform independent writable directory for temporary files consisting of the platform's temp-root + tmpSubDir ,
e.g. |
static URLConnection |
openURL(URL url)
Returns the connected URLConnection, or null if not url is not available |
static URLConnection |
openURL(URL url,
String dbgmsg)
Returns the connected URLConnection, or null if not url is not available |
static String |
slashify(String path,
boolean startWithSlash,
boolean endWithSlash)
|
static File |
testDir(File dir,
boolean create,
boolean executable,
AccessControlContext acc)
Returns the directory dir , which is processed and tested as described below. |
static boolean |
testDirExec(File dir)
Returns true if the given dir
exists, and
is a directory, and
is writeable, and
files can be executed from the directory
|
static boolean |
testFile(File file,
boolean shallBeDir,
boolean shallBeWritable)
Test whether file exists and matches the given requirements |
static URL |
toURL(File file)
Using the proper advertised conversion via File -> URI -> URL |
static URL |
toURLSimple(File file)
Using the simple conversion via File -> URL, assuming proper characters. |
static URL |
toURLSimple(String protocol,
String file,
boolean isDirectory)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final boolean DEBUG
public static final String java_io_tmpdir_propkey
java.io.tmpdir
public static final String user_home_propkey
public static final String tmpSubDir
jogamp
Method Detail |
---|
public static int copyURLConn2File(URLConnection conn, File outFile) throws IOException
conn
- the open URLConnectionoutFile
- the destination
IOException
public static int copyStream2File(InputStream in, File outFile, int totalNumBytes) throws IOException
in
- the sourceoutFile
- the destinationtotalNumBytes
- informal number of expected bytes, maybe used for user feedback while processing. -1 if unknown
IOException
public static int copyStream2Stream(InputStream in, OutputStream out, int totalNumBytes) throws IOException
in
- the sourceout
- the destinationtotalNumBytes
- informal number of expected bytes, maybe used for user feedback while processing. -1 if unknown
IOException
public static byte[] copyStream2ByteArray(InputStream stream) throws IOException
IOException
public static ByteBuffer copyStream2ByteBuffer(InputStream stream) throws IOException
The implementation creates the ByteBuffer w/ copyStream2ByteArray(InputStream)
's returned byte array.
IOException
public static String slashify(String path, boolean startWithSlash, boolean endWithSlash) throws RuntimeException
path
- startWithSlash
- endWithSlash
-
RuntimeException
- if final path is empty or has no parent directory available while resolving ../
public static URL toURL(File file) throws MalformedURLException
MalformedURLException
public static URL toURLSimple(File file) throws MalformedURLException
MalformedURLException
public static URL toURLSimple(String protocol, String file, boolean isDirectory) throws MalformedURLException
MalformedURLException
public static String getFileSuffix(File file)
file
- name of the file
NullPointerException
- if file is nullpublic static String getFileSuffix(String filename)
filename
- name of the file
NullPointerException
- if filename is nullpublic static FileOutputStream getFileOutputStream(File file, boolean allowOverwrite) throws IOException
file
- allowOverwrite
-
IOException
- if the file already exists and allowOverwrite
is false,
the class FileOutputStream
is not accessible or
the user does not have sufficient rights to access the local filesystem.public static String getClassFileName(String clazzBinName)
public static URL getClassURL(String clazzBinName, ClassLoader cl) throws IOException
clazzBinName
- com.jogamp.common.util.cache.TempJarCachecl
- ClassLoader to locate the JarFile
IOException
- if the jar file could not been found by the ClassLoaderpublic static String getBasename(String fname)
public static String getDirname(String fname)
public static URLConnection getResource(Class<?> context, String resourcePath)
getResource(String, ClassLoader)
:
context
's package name-path plus resourcePath
via context
's ClassLoader.
This allows locations relative to JAR- and other URLs.
The resourcePath
may start with ../
to navigate to parent folder.context
's ClassLoader and the resourcePath
as is (filesystem)Returns the resolved and open URLConnection or null if not found.
getResource(String, ClassLoader)
,
ClassLoader.getResource(String)
,
ClassLoader.getSystemResource(String)
public static URLConnection getResource(String resourcePath, ClassLoader cl)
Returns the resolved and connected URLConnection or null if not found.
ClassLoader.getResource(String)
,
ClassLoader.getSystemResource(String)
,
URL.URL(String)
,
File.File(String)
public static String getRelativeOf(File baseLocation, String relativeFile)
baseLocation
- denotes a directoryrelativeFile
- denotes a relative file to the baseLocationpublic static String getParentOf(String path) throws MalformedURLException
path
- assuming a slashified path beginning with "/" as it's root directory, either denotes a file or directory.
MalformedURLException
- if path is empty or has parent no directory availablepublic static String cleanPathString(String path) throws MalformedURLException
path
- assuming a slashified path beginning with "/" as it's root directory, either denotes a file or directory.
../
and ./
is resolved.
MalformedURLException
- if path is empty or has no parent directory available while resolving ../
public static URL getRelativeOf(URL baseLocation, String relativeFile) throws MalformedURLException
baseLocation
- denotes a URL to a directory if ending w/ '/', otherwise we assume a filerelativeFile
- denotes a relative file to the baseLocation's parent directory
MalformedURLException
public static URL compose(String scheme, String auth, String path1, String path2, String query, String fragment) throws MalformedURLException
MalformedURLException
public static URLConnection openURL(URL url)
public static URLConnection openURL(URL url, String dbgmsg)
public static boolean testFile(File file, boolean shallBeDir, boolean shallBeWritable)
file
exists and matches the given requirements
file
- shallBeDir
- shallBeWritable
-
public static boolean testDirExec(File dir) throws SecurityException
dir
dir
-
SecurityException
- if file creation and process execution is not allowed within the current security contextpublic static File testDir(File dir, boolean create, boolean executable, AccessControlContext acc) throws SecurityException
dir
, which is processed and tested as described below.
create
is true
and the directory does not exist yet, it is created incl. all sub-directories.dirName
exists, but is not a directory, null
is being returned.null
is being returned.executable
is true
and files cannot be executed from the directory, null
is being returned.
dir
- the directory to processcreate
- true if the directory shall be created if not existingexecutable
- true if the user intents to launch executables from the temporary directory, otherwise false.acc
- The security AccessControlContext
to create directories and test executability
SecurityException
- if file creation and process execution is not allowed within the current security contextpublic static File getTempDir(boolean executable, AccessControlContext acc) throws SecurityException, RuntimeException
temp-root
+ tmpSubDir
,
e.g. /tmp/jogamp_0000/
.
On standard Java the temp-root
folder is specified by java.io.tempdir
.
On Android the temp-root
folder is relative to the applications local folder
(see Context#getDir(String, int)
) is returned, if
the Android application/activity has registered it's Application Context
via StaticContext.init(..)
.
This allows using the temp folder w/o the need for sdcard
access, which would be the java.io.tempdir
location on Android!
In case temp-root
is the users home folder,
a dot is being prepended to tmpSubDir
, i.e.: /home/user/.jogamp_0000/
.
executable
- true if the user intents to launch executables from the temporary directory, otherwise false.acc
- The security AccessControlContext
to access properties, environment vars, create directories and test executability
SecurityException
- if access to java.io.tmpdir
is not allowed within the current security context
RuntimeException
- if no temporary directory could be determinedPropertyAccess.getProperty(String, boolean, java.security.AccessControlContext)
,
Context#getDir(String, int)
public static File createTempFile(String prefix, String suffix, boolean executable, AccessControlContext acc) throws IllegalArgumentException, IOException, SecurityException
File.createTempFile(String, String, File)
using
#getTempRoot(AccessControlContext, boolean)
as the directory parameter, ie. location
of the root temp folder.
prefix
- suffix
- executable
- true if the temporary root folder needs to hold executable files, otherwise false.
IllegalArgumentException
IOException
SecurityException
File.createTempFile(String, String)
,
File.createTempFile(String, String, File)
,
#getTempRoot(AccessControlContext, boolean)
public static void close(Closeable stream, boolean throwRuntimeException) throws RuntimeException
RuntimeException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |