|
Hi Patrick, I finally got some time to test out RandomAccessFile and it does work. I decided to combine it with Ivan's CCSID question, so I created a Unicode capable file. Here's the DDS - you'll probably need to put it in a text editor to get everything to line up properly: : * Test UCS-2 A R IT134882 * A OVNAME 30G COLHDG('Name') A CCSID(13488) * A K OVNAME * One interesting thing is that the record ( max ) length is 60 because of the 30 two-byte characters. Here's the code I used with the path dummied up: import java.io.*; public class TestWriteAS400File { public static void main(String[] args) throws Exception { RandomAccessFile raf = new RandomAccessFile( "/qsys.lib/alib.lib/aUniFile.file/aUniMbr.mbr", "rw" ); raf.seek( 0 ); raf.writeChars( "I want this to be record 1" ); raf.seek( 60 ); raf.writeChars( "I want this to be record 2" ); raf.seek( 120 ); raf.writeChars( "I want this to be record 3" ); raf.close(); } // end main } // end class TestWriteAS400File Here's the hex dump output - again, you'll probably need to put it in a text editor to get everything to line up properly: *...+....1....+....2....+....3....+....4....+....5....+....6 ñ Ï / > È È Ç Ñ Ë È ? Â Á Ê Á Ä ? Ê À 040207060607020706060702070602060602070606060706020302020202 090007010E04000408090300040F000205000205030F0204000100000000 ñ Ï / > È È Ç Ñ Ë È ? Â Á Ê Á Ä ? Ê À 040207060607020706060702070602060602070606060706020302020202 090007010E04000408090300040F000205000205030F0204000200000000 ñ Ï / > È È Ç Ñ Ë È ? Â Á Ê Á Ä ? Ê À 040207060607020706060702070602060602070606060706020302020202 090007010E04000408090300040F000205000205030F0204000300000000 And here's an ISO 8859-1 table to confirm the values: http://www.bbsinc.com/iso8859.html Since it's Unicode, which encompasses ISO 8859-1, the values are 2 bytes, so for 'w', the value in the AS/400 file is 0077 ( \a0077 ) rather than just 0x77 as in the table. Also, the Java program clearly respected the file CCSID when running on the AS/400 so I didn't have to specify the encoding. I'm not sure ( and probably won't take the time to find out until/unless I need it ) if that would hold true if I were running a version on a client to write to the 400. Normally I would expect system default encoding. 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
As an Amazon Associate we earn from qualifying purchases.
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.