File utility for creating a new empty file
The java.io.File.createNewFile() method for creating new empty files reports failure by returning false. To ease proper checking of return values provide a utility method wrapping createNewFile() throwing IOException on failure. Change-Id: I42a3dc9d8ff70af62e84de396e6a740050afa896 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
This commit is contained in:
parent
05ca0c49f9
commit
c45f2aec56
|
@ -175,4 +175,19 @@ public void testMkdirs() throws IOException {
|
|||
assertTrue(f.delete());
|
||||
}
|
||||
|
||||
public void testCreateNewFile() throws IOException {
|
||||
File f = new File(trash, "x");
|
||||
FileUtils.createNewFile(f);
|
||||
assertTrue(f.exists());
|
||||
|
||||
try {
|
||||
FileUtils.createNewFile(f);
|
||||
fail("creation of already existing file must fail");
|
||||
} catch (IOException e) {
|
||||
// expected
|
||||
}
|
||||
|
||||
FileUtils.delete(f);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -130,6 +130,7 @@ couldNotWriteFile=Could not write file {0}
|
|||
countingObjects=Counting objects
|
||||
createBranchFailedUnknownReason=Create branch failed for unknown reason
|
||||
createBranchUnexpectedResult=Create branch returned unexpected result {0}
|
||||
createNewFileFailed=Could not create new file {0}
|
||||
credentialPassword=Password
|
||||
credentialUsername=Username
|
||||
daemonAlreadyRunning=Daemon already running
|
||||
|
|
|
@ -190,6 +190,7 @@ public static JGitText get() {
|
|||
/***/ public String countingObjects;
|
||||
/***/ public String createBranchFailedUnknownReason;
|
||||
/***/ public String createBranchUnexpectedResult;
|
||||
/***/ public String createNewFileFailed;
|
||||
/***/ public String credentialPassword;
|
||||
/***/ public String credentialUsername;
|
||||
/***/ public String daemonAlreadyRunning;
|
||||
|
|
|
@ -47,6 +47,7 @@
|
|||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.channels.FileLock;
|
||||
import java.text.MessageFormat;
|
||||
|
||||
import org.eclipse.jgit.JGitText;
|
||||
|
@ -219,4 +220,26 @@ public static void mkdirs(final File d, boolean skipExisting)
|
|||
JGitText.get().mkDirsFailed, d.getAbsolutePath()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Atomically creates a new, empty file named by this abstract pathname if
|
||||
* and only if a file with this name does not yet exist. The check for the
|
||||
* existence of the file and the creation of the file if it does not exist
|
||||
* are a single operation that is atomic with respect to all other
|
||||
* filesystem activities that might affect the file.
|
||||
* <p>
|
||||
* Note: this method should not be used for file-locking, as the resulting
|
||||
* protocol cannot be made to work reliably. The {@link FileLock} facility
|
||||
* should be used instead.
|
||||
*
|
||||
* @param f
|
||||
* the file to be created
|
||||
* @throws IOException
|
||||
* if the named file already exists or if an I/O error occurred
|
||||
*/
|
||||
public static void createNewFile(File f) throws IOException {
|
||||
if (!f.createNewFile())
|
||||
throw new IOException(MessageFormat.format(
|
||||
JGitText.get().createNewFileFailed, f));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue