I would like to create a multi-plattform utility to format / erase memory sticks, disks, etc.
Is it possible to do this in Java? Or do I need to call native methods for each operational system plattform?
It is very system specific, there is no universal way to perform this. Your options are
- Create a JNI library to perform this using system calls
- Write a wrapper class around utilities that perform this operation (for example, capture stdout and give inputs to stdin for an external process)
- Use OS-specific techniques (as previously mentioned) to zero out devices
- Use something like fat32-lib to manipulate specific file system types.
Not directly. You will need to invoke a operating system specific program to do the actual work for you.
On unix-like systems, you'd be able (only as root, most likely) to read the disk files /dev/{h,s}d* and write whatever byte sequence you want to them, including byte sequences that represent a, say, ext3 file system.
I don't know of any ext3 libraries in Java, though, so you might have to write it yourself. Or a library for the file format you care about.
This is probably not what you want, though, but you can settle for it :-)
来源:https://stackoverflow.com/questions/4239350/is-it-possible-to-format-a-memory-stick-pen-drive-or-disk-using-java