× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Joe Sam,

You are correct on all points.


I changed the class so that it space-padded the data to 132 and it wrote three records like I wanted.




I changed the class again and tried using java.io.RandomAccessFile and even did java.io.RandomAccessFile.setLength(132) on the file but got the orginal undesired results.



Thanx for the suggestions, PLA




Joe Sam Shirah wrote:


Hi Patrick,

You didn't say, but I assume that you got one record containing

"I want this to be record 1I want this to be record 2I want this to be
record 3"

   Stream files just see and read one byte after another ( more or less -
chars for Reader/Writers ).  I haven't had a need to write directly to a
physical file this way, but I would expect that the only way your code could
work would be to ensure that you write 132 bytes ( the record length ) each
time.  And that may not work with straight stream files.  In general, Java
uses java.io.RandomAccessFile to work with fixed-length records.


Joe Sam


Joe Sam Shirah -        http://www.conceptgo.com
conceptGO         -        Consulting/Development/Outsourcing
Java Filter Forum:       http://www.ibm.com/developerworks/java/
Just the JDBC FAQs: http://www.jguru.com/faq/JDBC
Going International?    http://www.jguru.com/faq/I18N
Que Java400?             http://www.jguru.com/faq/Java400


----- Original Message ----- From: "Patrick L Archibald" <Patrick.Archibald@xxxxxxxxxxxxx> To: <java400-l@xxxxxxxxxxxx> Sent: Monday, March 29, 2004 3:47 PM Subject: Writing to an AS/400 physical file with fileOutputStream




Hello

Does anyone know how I could force a new record to be written to an
AS/400 physical file in the test code below (without using any toolbox
classes)?

I used the following command to create the physical file on the AS/400:

crtpf trash/test rcdlen(132)

I end up with one record instead of 3.

Here is the Java test code:



import java.io.FileOutputStream;

public class TestWriteAS400File {

public static void main(String[] args) throws Exception {

   FileOutputStream fileOutputStream =
     new FileOutputStream("/qsys.lib/trash.lib/test.file/test.mbr");

fileOutputStream.write("I want this to be record


1".getBytes("Cp037"));


fileOutputStream.write("I want this to be record


2".getBytes("Cp037"));


fileOutputStream.write("I want this to be record


3".getBytes("Cp037"));


fileOutputStream.close();

}

}


Thanx, PLA








_______________________________________________
This is the Java Programming on and around the iSeries / AS400 (JAVA400-L) 
mailing list
To post a message email: JAVA400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/java400-l.






As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.