Returns an output stream for overwriting the file in readwrite mode, possibly creating a backup copy of the file first.
If the file doesn't exist, it will be created.
For details about the behaviour, see replace which does the same thing but returns an output stream only.
Note that in many non-local file cases read and write streams are not supported, so make sure you really need to do read and write streaming, rather than just opening for reading or writing.
Example: Get a stream to override a file in r/w, sync:
public static int main (string[] args) {
if (args.length != 2) {
print ("%s FILE\n", args[0]);
return 0;
}
try {
File file = File.new_for_commandline_arg (args[1]);
FileIOStream iostream = file.replace_readwrite (null, false, FileCreateFlags.NONE);
OutputStream ostream = iostream.output_stream;
DataOutputStream dostream = new DataOutputStream (ostream);
dostream.put_string ("my-line\n");
} catch (Error e) {
print ("Error: %s\n", e.message);
}
return 0;
}
valac --pkg gio-2.0 GLib.File.replace_readwrite.vala
this |
a File |
etag |
an optional entity tag for the current File, or |
make_backup |
true if a backup should be created |
flags |
a set of FileCreateFlags |
cancellable |
optional Cancellable object, null to ignore |
a FileIOStream or null on error. Free the returned object with unref. |