com.ibm.as400.access
Class IFSFileWriter

java.lang.Object
  |
  +--java.io.Writer
        |
        +--com.ibm.as400.access.IFSFileWriter

public class IFSFileWriter
extends Writer

Convenience class for writing character files in the integrated file system. The behavior of this class is comparable to java.io.FileWriter. IFSFileWriter is meant for writing streams of characters. For writing streams of raw bytes, consider using a IFSFileOutputStream.
The following example illustrates the use of IFSFileWriter:

import java.io.PrintWriter;
import java.io.BufferedWriter;
// Work with /File1 on the system eniac.
AS400 as400 = new AS400("eniac");
IFSFile file = new IFSFile(system, "/File1");
PrintWriter writer = new PrintWriter(new BufferedWriter(new IFSFileWriter(file)));
// Write a line of text to the file, converting characters.
writer.println(text);
// Close the file.
writer.close();


Field Summary
static int SHARE_ALL
          Share option that allows read and write access by other users.
static int SHARE_NONE
          Share option that does not allow read or write access by other users.
static int SHARE_READERS
          Share option that allows only read access by other users.
static int SHARE_WRITERS
          Share option that allows only write access by other users.
 
Fields inherited from class java.io.Writer
lock
 
Constructor Summary
IFSFileWriter(IFSFile file)
          Constructs an IFSFileWriter object.
IFSFileWriter(IFSFile file, boolean append)
          Constructs an IFSFileWriter object.
IFSFileWriter(IFSFile file, boolean append, int shareOption)
          Constructs an IFSFileWriter object.
IFSFileWriter(IFSFile file, boolean append, int shareOption, int ccsid)
          Constructs an IFSFileWriter object.
IFSFileWriter(IFSFileDescriptor fd)
          Constructs an IFSFileWriter object.
IFSFileWriter(IFSFile file, int ccsid)
          Constructs an IFSFileWriter object.
 
Method Summary
 Writer append(char c)
          Appends the specified character to this writer.
 Writer append(CharSequence csq)
          Appends the specified character sequence to this writer.
 Writer append(CharSequence csq, int start, int end)
          Appends a subsequence of the specified character sequence to this writer.
 void close()
          Closes the stream, flushing it first.
 void flush()
          Flushes the underlying output stream.
 int getCCSID()
          Returns the CCSID used by this IFSFileWriter.
 String getEncoding()
          Returns the encoding used by this IFSFileWriter.
 IFSKey lockBytes(int length)
          Places a lock on the file at the current position for the specified number of bytes.
 void unlockBytes(IFSKey key)
          Undoes a lock on the file.
 void write(char[] buffer)
          Writes the specified array of characters.
 void write(char[] buffer, int offset, int length)
          Writes a portion of an array of characters.
 void write(int c)
          Writes a single character.
 void write(String data)
          Writes a String.
 void write(String data, int offset, int length)
          Writes a portion of a String.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SHARE_ALL

public static final int SHARE_ALL
Share option that allows read and write access by other users.

See Also:
Constant Field Values

SHARE_NONE

public static final int SHARE_NONE
Share option that does not allow read or write access by other users.

See Also:
Constant Field Values

SHARE_READERS

public static final int SHARE_READERS
Share option that allows only read access by other users.

See Also:
Constant Field Values

SHARE_WRITERS

public static final int SHARE_WRITERS
Share option that allows only write access by other users.

See Also:
Constant Field Values
Constructor Detail

IFSFileWriter

public IFSFileWriter(IFSFile file)
              throws AS400SecurityException,
                     IOException
Constructs an IFSFileWriter object. Other readers and writers are allowed to access the file. The file is opened if it exists; otherwise an exception is thrown. The file's CCSID is obtained by referencing the file's "coded character set ID" tag on the server. Any data currently in the file will be overwritten. Other readers and writers are allowed to access the file.

Parameters:
file - The file to be opened for writing.
Throws:
AS400SecurityException - If a security or authority error occurs.
IOException - If an error occurs while communicating with the server.

IFSFileWriter

public IFSFileWriter(IFSFile file,
                     int ccsid)
              throws AS400SecurityException,
                     IOException
Constructs an IFSFileWriter object. The file is opened if it exists; otherwise an exception is thrown. Any data currently in the file will be overwritten. Other readers and writers are allowed to access the file.

Parameters:
file - The file to be opened for writing.
ccsid - The CCSID to convert the data to when writing to the file. The file's "data CCSID" tag on the server is not changed.
Throws:
AS400SecurityException - If a security or authority error occurs.
IOException - If an error occurs while communicating with the server.

IFSFileWriter

public IFSFileWriter(IFSFile file,
                     boolean append)
              throws AS400SecurityException,
                     IOException
Constructs an IFSFileWriter object. The file is opened if it exists; otherwise an exception is thrown. The file's CCSID is obtained by referencing the file's "coded character set ID" tag on the server. Other readers and writers are allowed to access the file.

Parameters:
file - The file to be opened for writing.
append - If true, output is appended to the file; otherwise, any data currently in the file will be overwritten.
Throws:
AS400SecurityException - If a security or authority error occurs.
IOException - If an error occurs while communicating with the server.

IFSFileWriter

public IFSFileWriter(IFSFile file,
                     boolean append,
                     int shareOption)
              throws AS400SecurityException,
                     IOException
Constructs an IFSFileWriter object. The file is opened if it exists; otherwise an exception is thrown. The file's CCSID is obtained by referencing the file's "coded character set ID" tag on the server.

Parameters:
file - The file to be opened for writing.
append - If true, output is appended to the file; otherwise, any data currently in the file will be overwritten.
shareOption - Indicates how users can access the file.
Throws:
AS400SecurityException - If a security or authority error occurs.
IOException - If an error occurs while communicating with the server.

IFSFileWriter

public IFSFileWriter(IFSFile file,
                     boolean append,
                     int shareOption,
                     int ccsid)
              throws AS400SecurityException,
                     IOException
Constructs an IFSFileWriter object. The file is opened if it exists; otherwise an exception is thrown.

Parameters:
file - The file to be opened for writing.
append - If true, output is appended to the file; otherwise, any data currently in the file will be overwritten.
shareOption - Indicates how users can access the file.
ccsid - The CCSID to convert the data to when writing to the file. The file's "data CCSID" tag on the server is not changed.
Throws:
AS400SecurityException - If a security or authority error occurs.
IOException - If an error occurs while communicating with the server.

IFSFileWriter

public IFSFileWriter(IFSFileDescriptor fd)
              throws AS400SecurityException,
                     IOException
Constructs an IFSFileWriter object. The file is opened if it exists; otherwise an exception is thrown.

Parameters:
fd - The file descriptor to be opened for writing.
Method Detail

append

public Writer append(char c)
              throws IOException
Appends the specified character to this writer.

Parameters:
c - - The 16-bit character to append.
Returns:
This IFSFileWriter
Throws:
IOException - If an I/O error occurs

append

public Writer append(CharSequence csq)
              throws IOException
Appends the specified character sequence to this writer.

Parameters:
csq - The character sequence to append. If csq is null, then the four characters "null" are appended to this writer.
Returns:
This IFSFileWriter
Throws:
IOException - If an I/O error occurs

append

public Writer append(CharSequence csq,
                     int start,
                     int end)
              throws IOException
Appends a subsequence of the specified character sequence to this writer.

Parameters:
csq - The character sequence from which a subsequence will be appended. If csq is null, then characters will be appended as if csq contained the four characters "null".
start - The index of the first character in the subsequence
end - The index of the character following the last character in the subsequence
Returns:
This IFSFileWriter
Throws:
IndexOutOfBoundsException - If start or end are negative, start is greater than end, or end is greater than csq.length()
IOException - If an I/O error occurs

close

public void close()
           throws IOException
Closes the stream, flushing it first. Once a stream has been closed, further write() or flush() invocations will cause an IOException to be thrown. Closing a previously-closed stream, however, has no effect.

Specified by:
close in class Writer
Throws:
IOException - If an error occurs while communicating with the server.

flush

public void flush()
           throws IOException
Flushes the underlying output stream.

Specified by:
flush in class Writer
Throws:
IOException - If an error occurs while communicating with the server.

getCCSID

public int getCCSID()
Returns the CCSID used by this IFSFileWriter.

Returns:
The CCSID, or -1 if the CCSID is not known.

getEncoding

public String getEncoding()
Returns the encoding used by this IFSFileWriter.

Returns:
The encoding, or null if the encoding is not known.

lockBytes

public IFSKey lockBytes(int length)
                 throws IOException
Places a lock on the file at the current position for the specified number of bytes.

Parameters:
length - The number of bytes to lock.
Returns:
The key for undoing this lock.
Throws:
IOException - If an error occurs while communicating with the server.
See Also:
unlockBytes(com.ibm.as400.access.IFSKey)

unlockBytes

public void unlockBytes(IFSKey key)
                 throws IOException
Undoes a lock on the file.

Parameters:
key - The key for the lock.
Throws:
IOException - If an error occurs while communicating with the server.
See Also:
lockBytes(int)

write

public void write(int c)
           throws IOException
Writes a single character.

Overrides:
write in class Writer
Parameters:
c - int specifying a character to be written.
Throws:
IOException - If an error occurs while communicating with the server.

write

public void write(char[] buffer)
           throws IOException
Writes the specified array of characters.

Overrides:
write in class Writer
Parameters:
buffer - The characters to be written.
Throws:
IOException - If an error occurs while communicating with the server.

write

public void write(char[] buffer,
                  int offset,
                  int length)
           throws IOException
Writes a portion of an array of characters.

Specified by:
write in class Writer
Parameters:
buffer - The characters to be written.
offset - The offset into the array from which to begin extracting characters to write.
length - The number of characters to write.
Throws:
IOException - If an error occurs while communicating with the server.

write

public void write(String data)
           throws IOException
Writes a String.

Overrides:
write in class Writer
Parameters:
data - The String to write.
Throws:
IOException - If an error occurs while communicating with the server.

write

public void write(String data,
                  int offset,
                  int length)
           throws IOException
Writes a portion of a String.

Overrides:
write in class Writer
Parameters:
data - The String to write.
offset - The offset into the String from which to begin extracting characters to write.
length - The number of characters to write.
Throws:
IOException - If an error occurs while communicating with the server.