Decoding crc16 byte stream using java

Hi,
I'm developing on a application where in i need to decode the data received(encoded using crc16 algorithrm) . Kindly please suggest me how do i do it
Thanks

CRC is a checksum - one cannot decode it per se. You can only ensure that a byte stream received does or does not have the appropriate CRC based on the bytes and transmitted CRC.

Similar Messages

  • Audio stream using java fx

    Hello,
    I produced a audio file via Java Sound API.
    The audio file has the following format: WAVE / 24 bit (sampling rate) / PCM/ 44.1 kHz (resolution)
    (It is well known, that the higher the sample rate and the resolution, the better the sound quality.)
    I have a applet which streams the audio file to the client via the SourceDataLine-Interfaces of Java Sound API.
    However, the streaming via HTTP and SourceDataLine is bad with clicks and distortions.
    So I decided to use JAVA FX with its Media Capapilities (RTSP) - now, the streaming is perfect!
    Now, my question:
    Question 1:
    Does the quality of the sound file suffers, when using JAVA FX RTSP?
    Question 2:
    *Does JAVA FX internally streams the audio file in another (worser) sampling rate and another resolution?
    Question 3:
    Does JAVA FX down samples the audio file implicitly to make the streaming better? For example, even the original audio file has 24bit/44.1khz, JAVA FX streams that file with 8bit/22khz. Am I right? *
    Question 4:
    If JAVA FX does not change the audio format to a streaming capable format (where quality suffers),
    how does JAVA FX makes it possible to stream that file with 24 bit/44.1 kHz?
    Question 5:
    Does JAVA FX uses UDP?
    I want, that the audio being streamed has exactly the same format without down samplings or the kind.
    Is that already the case?

    Hi nimo21,
    are you really able to streaming via RTSP?
    i am trying to play an mp3-file and and video-file via RTSP but i got an exception.
    FX Media Object caught Exception com.sun.media.jmc.MediaUnavailableException: Media unavailable: rtsp://192.168.56.1/Kalam_Bahu.mp3
        source ='rtsp://192.168.56.1/Kalam_Bahu.mp3'
    com.sun.media.jmc.MediaUnavailableException: Media unavailable: rtsp://192.168.56.1/Kalam_Bahu.mp3
            at com.sun.media.jmcimpl.PeerManager$1.run(PeerManager.java:56)
            at java.security.AccessController.doPrivileged(Native Method)
            at com.sun.media.jmcimpl.PeerManager.throwMediaException(PeerManager.java:51)
            at com.sun.media.jmcimpl.PeerManager.getMediaPeer(PeerManager.java:211)
            at com.sun.media.jmc.Media.<init>(Media.java:50)
            at javafx.scene.media.Media$_SBECL.onChange(Media.fx:87)
            at com.sun.javafx.runtime.location.ObjectVariable.notifyListeners(ObjectVariable.java:142)
            at com.sun.javafx.runtime.location.ObjectVariable.replaceValue(ObjectVariable.java:104)
            at com.sun.javafx.runtime.location.ObjectVariable.set(ObjectVariable.java:115)
            at javafx.scene.media.Media.set$source(Media.fx:80)
            at swingtest.MyScene.applyDefaults$(MyScene.fx:52)
            at swingtest.MyScene.applyDefaults$(MyScene.fx:52)
            at com.sun.javafx.runtime.FXBase.applyDefaults$(FXBase.java:65)
            at swingtest.MyScene.initialize$(MyScene.fx:22)
            at swingtest.MyScene.initialize$(MyScene.fx:22)
            at javafx.reflect.FXLocal$ObjectValue.initialize(FXLocal.java:1044)
            at javafx.reflect.FXLocal$ObjectValue.initialize(FXLocal.java:986)
            at javafx.reflect.FXClassType.newInstance(FXClassType.java:187)
            at org.jfxtras.scene.SceneToJComponent.loadScene(SceneToJComponent.java:88)
            at swingtest.JavaFXToSwingTest.<init>(JavaFXToSwingTest.java:28)
            at swingtest.JavaFXToSwingTest$1.run(JavaFXToSwingTest.java:49)
            at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    Caused by: java.net.MalformedURLException: unknown protocol: rtsp
            at java.net.URL.<init>(URL.java:574)
            at java.net.URL.<init>(URL.java:464)
            at java.net.URL.<init>(URL.java:413)
            at java.net.URI.toURL(URI.java:1081)
            at com.sun.media.jmcimpl.PeerManager$1.run(PeerManager.java:54)
            ... 26 moreMaybe you can help me how to solve this problem.
    thx

  • Opening a pdf file stream using java

    I am developing a web app using jsp that needs to dynamically create xml files, then using fop I convert those files into pdf's.
    I would need to be able to open multiple pdf files in a row...
    Here's what I have so far....this will only open the 1st file...
    I don't need to open the pdf files in a web browser, it can be done in acrobat reader if needs be...
    do
    if ( ( ( startRec * cache) + 1 ) <= ( min( ( startRec + 1 ) * cache, recCount ) ) )
    System.out.println( ( startRec * cache ) + 1 + "-" + min( ( startRec + 1 ) * cache, recCount ) );
    String xmlString =      xmlStart;
    for ( int n=( startRec * cache ); n<min( ( startRec + 1 ) * cache, recCount ); n++ )
    ViewFileDetailsBean viewBean = (ViewFileDetailsBean)listOfViewFileDetailsBean.get(n);
    xmlString = xmlString + viewBean.getxMLString();
    xmlString = xmlString + "/t</data>\n"; // THIS FINISHES THE XML
    pdfBean.makePDF( xmlString );
    response.setContentLength( pdfBean.getOutput().length );
    response.setContentType( "application/pdf" );
    response.getOutputStream().write( pdfBean.getOutput() );
    response.getOutputStream().flush();
    startRec++;
    }while ( startRec <= ( recCount / cache ) );
    Thanks,
    GoldenEye4ever

    I forgot to say,
    We will not have write access to the server, also, the higher-ups would like to view pdf files.. rather than extracting a zip file containing pdf files...lol
    Basically, the xml file that I was initally creating was getting far too large for java to handle, 190,000 records +,
    so i am breaking them down to perhaps 10,000 record long xml files, to be converted to pdf
    Thanks for your fast reply
    GoldenEye4ever

  • How to publish a local audio stream using NetStream?

    As all we know, if we want to publish a stream to FMS or Red5, we can code like below:
    var nc:NetConnection = new NetConnection();
    nc.connect("rtmp://localhost/myApp");
    var ns:NetStream = new NetStream(nc);
    ns.attachAudio(Microphone);
    ns.publish("audio", "live");
    my problem is that we can pass an instance of Microphone to ns.attachAudio() only, if I want to attach a local audio stream,like playing a local sample.flv file to become a audio stream, how can I do?
    this issue has been asked 7 years ago, see the post. but i can not find any solutions.
    any tips will be appreciated. thx in advance.

    how to watch my local network stream using java,help!http://www.ethereal.com - a third party program (but not using java)

  • BPM 11g integration with UCM11g using Java Enbedded acitivity

    Hi Friends,
    Can anyone throw some idea how to integration with BPM11g and UCM11g
    We need to have a java code using Java Enbedded acitivity.
    1) How to Connect to UCM 11g using java code any sample Java Embedded Code( we are connecting through RIDC)
    2) How to Fetch the document from UCM using RIDC.
    3) How to Close the Connection.
    Hi friends,
    My requirement was Using BPEL JAva Embedded Acitivity need to connect UCM by RIDC. Got SCAC exception. I could solve this today 3/12/2012... refer below link
    Re: SCAC-50012 Got this exception when using BPEL Java Embedded Activity
    But I have the actual thing.. as per my post..
    Now I need to fetch the doc i.e.,
    In UCM we have pdf documents i need to Download that document and show it in ADF UI using Java Embedded Activity.
    Ie., Using Java Code I need to Download and Decode the PDF file using Java Embedded Activity after Connection with UCM. Save as a file in Local Machine then I need to Encode ads PDF and Show it to ADF UI.
    Please experts its Quite Urgent!!
    ThankQ!!
    Regards,
    Pavan
    Edited by: BPM Fresher on Dec 3, 2012 8:12 PM

    Hi experts...
    Any solution for this.. Can any one help me on this...
    Regards,
    Pavan

  • Oracle Blob using Java help (Error: JVM_recv in socket input stream read )

    I am trying to insert a record with Blob column (size of image 'mg.jpg' about 15KB) and I get the runtime error:
    [java] java.sql.SQLException: Io exception: Connection reset by peer: JVM_recv in socket input stream read
    [java]      at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    [java]      at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
    [java]      at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
    [java]      at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2061)
    [java]      at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940)
    [java]      at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2709)
    [java]      at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589)
    [java]      at test.ProvisioningParser.TestBlob.main(Unknown Source)
    This is what code looks like: I am not sure what's wrong, any help appreciated. Thanks!
         try{
                   Class.forName("oracle.jdbc.driver.OracleDriver");
                   con = DriverManager.getConnection("jdbc:oracle:thin:@VALUED-20606295:1521:dbbook","jvending","jvending");
                   java.util.zip.ZipInputStream zip = new java.util.zip.ZipInputStream(new java.io.FileInputStream(new java.io.File("D:\\work\\mywork\\source\\test\\ProvisioningParser\\test.par"))) ;
                   int len = 0 ;
                   java.util.zip.ZipEntry entry = null;
                   do{
                        entry = zip.getNextEntry();
                        if (entry != null){
                             if (entry.getName().equalsIgnoreCase("mg.jpg")){
                                  len = (int)entry.getSize();
                                  break;
                   }while(entry!=null) ;
                   stmt = con.prepareStatement( "Insert into icon (parid, clientbundleid, id, iconfile ) values ( ?,?,?,?)"
                         stmt.setString(1,"101");
                         stmt.setString(2,"101");
                         stmt.setInt(3,1);                    
                         stmt.setBinaryStream( 4, zip, len);
                   stmt.setQueryTimeout(0);
                   stmt.executeUpdate();
                   con.close();               
              catch(Exception e){
                   e.printStackTrace();
              }Thanks,
    Rashmi

    As a guess what you are doing with that zip stuff is very odd.
    You do realize that it is just going to put some binary data into the blob right? And the methods that is going to use will not necessarily create a 'complete' zip file?
    If you want a zip file then just load the file, dont use the zip classes.
    And if you want part of a zip file, (and want to store the parts as a zip) then extract it from the file and create another zip entity using a byte stream rather than a file.
    Finally I suspect your error with the blob occurs because you do not close the statement. But at any rate you should figure out how to do the blob code independent of the zip stuff.
    And what oracle driver version are you using? Some of the older ones need oracle specific handling for blobs.

  • Decode raw RTP packets using JMF

    Hi!
    I have a stream of raw RTP packets comming from another program.
    How can I use JMF to decode all raw RTP packets and get the media stream using JMF?
    /Tec

    Hello,
    Have you resolved your problem?
    I've tried with Jmf, but finaly i receive each stream and save raw data in a file.
    Then i convert it to an audio file format. (tritonus : RawAudioConverter.java)
    If you have resolved with jmf i'm interested by your solution.
    try{
    rtpRcvSock.receive(rcvPkt);
    data = rcvPkt.getData();
              boolean extensionHeader = ( (data[0] & 0x08) == 0x08) ? true : false;
         int payloadType = data[1] & 0x7F;
         int cc = data[0] & 0x0F;
         int sequenceNumber = ( (data[2] & 0xFF) << 8) | (data[3] & 0xFF);
         int mediaStart = 3 * 4 + cc * 4;
         int extLength = 0;
              System.out.println("PayLoad = "+payloadType);
              System.out.println("Seqnum = "+sequenceNumber);
              System.out.println("Data Length = "+ (data.length - mediaStart));
         if (extensionHeader) {
         extLength = (data[mediaStart + 3] & 0xFF)
         | ( (data[mediaStart + 2] & 0xFF) << 8);
         mediaStart += extLength;
         byte[] mediaData = new byte[data.length - mediaStart];
         System.arraycopy(data, mediaStart, mediaData, 0, mediaData.length);
              ByteArrayInputStream bb = new ByteArrayInputStream(mediaData);
                   AudioInputStream aiStream = new AudioInputStream(bb,format,mediaData.length);
                   //AudioSystem.write(aiStream,AudioFileFormat.Type.WAVE,file);
                   file.write(mediaData);
    Then as i told i use RawAudioDataConverter.java
    Sam

  • How To Store pdf or doc file in Oracle Database using Java Jdbc?

    can any one help me out How To Store pdf or doc file in Oracle Database using Java Jdbc in JSP/Serlet? i tried like anything. using blob also i tried. but i am able 2 store images in DB not files. please if u know or else if u have some code like this plz send that to me, and help me out plz. i need that urgent.

    Hi.. i am not getting error, But i am not getting the original contents from my file. i am getting all ASCII vales, instead of my original data. here i am including my code.
    for Adding PDF in DB i used image.jsp
    Database table structure (table name. pictures )
    Name Null? Type
    ID NOT NULL NUMBER(11)
    IMAGE BLOB
    <%@ page language="java" import="java.util.*,java.sql.*,java.io.*" pageEncoding="ISO-8859-1"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <%
    try{
         Class.forName("oracle.jdbc.driver.OracleDriver");
         Connection con=DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.135:1521:orcl","scott","tiger");
         PreparedStatement ps,pstmt,psmnt;
         ps = con.prepareStatement("INSERT INTO pictures VALUES(?,?)");
    File file =
    new File("D:/info.pdf");
    FileInputStream fs = new FileInputStream(file);
    ps.setInt(1,4);
    ps.setBinaryStream(2,fs,fs.available());
    int i = ps.executeUpdate();
    if(i!=0){
    out.println("<h2>PDF inserted successfully");
    else{
    out.println("<h2>Problem in image insertion");
    catch(Exception e){
    out.println("<h2>Failed Due To "+e);
    %>
    O/P: PDF inserted successfully
    i tried to display that pdf using servlet. i am giving the code below.
    import java.io.IOException;
    import java.sql.*;
    import java.io.*;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    public class DispPDF extends HttpServlet {
         * The doGet method of the servlet. <br>
         * This method is called when a form has its tag value method equals to get.
         * @param request the request send by the client to the server
         * @param response the response send by the server to the client
         * @throws ServletException if an error occurred
         * @throws IOException if an error occurred
         public void service(HttpServletRequest request, HttpServletResponse response)
                   throws ServletException, IOException {
              //response.setContentType("text/html"); i commented. coz we cant use response two times.
              //PrintWriter out = response.getWriter();
              try{
                   InputStream sPdf;
                   Class.forName("oracle.jdbc.driver.OracleDriver");
                        Connection con=DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.135:1521:orcl","scott","tiger");
                        PreparedStatement ps,pstmt,psmnt;
                   psmnt = con.prepareStatement("SELECT image FROM pictures WHERE id = ?");
                        psmnt.setString(1, "4"); // here integer number '4' is image id from the table.
                   ResultSet rs = psmnt.executeQuery();
                        if(rs.next()) {
                   byte[] bytearray = new byte[1048576];
                        //out.println(bytearray);
                        int size=0;
                        sPdf = rs.getBinaryStream(1);
                        response.reset();
                        response.setContentType("application/pdf");
                        while((size=sPdf.read(bytearray))!= -1 ){
                        //out.println(size);
                        response.getOutputStream().write(bytearray,0,size);
                   catch(Exception e){
                   System.out.println("Failed Due To "+e);
                        //out.println("<h2>Failed Due To "+e);
              //out.close();
    OP
    PDF-1.4 %âãÏÓ 2 0 obj <>stream xœ+är á26S°00SIá2PÐ5´1ôÝ BÒ¸4Ü2‹ŠKüsSŠSŠS4C²€ê P”kø$V㙂GÒU×713CkW )(Ü endstream endobj 4 0 obj <>>>/MediaBox[0 0 595 842]>> endobj 1 0 obj <> endobj 3 0 obj <> endobj 5 0 obj <> endobj 6 0 obj <> endobj xref 0 7 0000000000 65535 f 0000000325 00000 n 0000000015 00000 n 0000000413 00000 n 0000000168 00000 n 0000000464 00000 n 0000000509 00000 n trailer <<01b2fa8b70ac262bfa939cc786f8770c>]/Root 5 0 R/Size 7/Info 6 0 R>> startxref 641 %%EOF
    plz help me out.

  • Playing a wav file (byte array) using JMF

    Hi,
    I want to play a wav file in form of a byte array using JMF. I have 2 classes, MyDataSource and MyPullBufferStream. MyDataSource class is inherited from PullStreamDataSource, and MyPullBufferStream is derived from PullBufferStream. When I run the following piece of code, I got an error saying "EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x7c9108b2, pid=3800, tid=1111". Any idea what might be the problem? Thanks.
    File file = new File(filename);
    byte[] data = FileUtils.readFileToByteArray(file);
    MyDataSource ds = new MyDataSource(data);
    ds.connect();
    try
        player = Manager.createPlayer(ds);
    catch (NoPlayerException e)
        e.printStackTrace();
    if (player != null)
         this.filename = filename;
         JMFrame jmframe = new JMFrame(player, filename);
        desktop.add(jmframe);
    import java.io.IOException;
    import javax.media.Time;
    import javax.media.protocol.PullBufferDataSource;
    import javax.media.protocol.PullBufferStream;
    public class MyDataSource extends PullBufferDataSource
        protected Object[] controls = new Object[0];
        protected boolean started = false;
        protected String contentType = "raw";
        protected boolean connected = false;
        protected Time duration = DURATION_UNKNOWN;
        protected PullBufferStream[] streams = null;
        protected PullBufferStream stream = null;
        protected final byte[] data;
        public MyDataSource(final byte[] data)
            this.data = data;
        public String getContentType()
            if (!connected)
                System.err.println("Error: DataSource not connected");
                return null;
            return contentType;
        public void connect() throws IOException
            if (connected)
                return;
            stream = new MyPullBufferStream(data);
            streams = new MyPullBufferStream[1];
            streams[0] = this.stream;
            connected = true;
        public void disconnect()
            try
                if (started)
                    stop();
            catch (IOException e)
            connected = false;
        public void start() throws IOException
            // we need to throw error if connect() has not been called
            if (!connected)
                throw new java.lang.Error(
                        "DataSource must be connected before it can be started");
            if (started)
                return;
            started = true;
        public void stop() throws IOException
            if (!connected || !started)
                return;
            started = false;
        public Object[] getControls()
            return controls;
        public Object getControl(String controlType)
            try
                Class cls = Class.forName(controlType);
                Object cs[] = getControls();
                for (int i = 0; i < cs.length; i++)
                    if (cls.isInstance(cs))
    return cs[i];
    return null;
    catch (Exception e)
    // no such controlType or such control
    return null;
    public Time getDuration()
    return duration;
    public PullBufferStream[] getStreams()
    if (streams == null)
    streams = new MyPullBufferStream[1];
    stream = streams[0] = new MyPullBufferStream(data);
    return streams;
    import java.io.ByteArrayInputStream;
    import java.io.IOException;
    import javax.media.Buffer;
    import javax.media.Control;
    import javax.media.Format;
    import javax.media.format.AudioFormat;
    import javax.media.protocol.ContentDescriptor;
    import javax.media.protocol.PullBufferStream;
    public class MyPullBufferStream implements PullBufferStream
    private static final int BLOCK_SIZE = 500;
    protected final ContentDescriptor cd = new ContentDescriptor(ContentDescriptor.RAW);
    protected AudioFormat audioFormat = new AudioFormat(AudioFormat.GSM_MS, 8000.0, 8, 1,
    Format.NOT_SPECIFIED, AudioFormat.SIGNED, 8, Format.NOT_SPECIFIED,
    Format.byteArray);
    private int seqNo = 0;
    private final byte[] data;
    private final ByteArrayInputStream bais;
    protected Control[] controls = new Control[0];
    public MyPullBufferStream(final byte[] data)
    this.data = data;
    bais = new ByteArrayInputStream(data);
    public Format getFormat()
    return audioFormat;
    public void read(Buffer buffer) throws IOException
    synchronized (this)
    Object outdata = buffer.getData();
    if (outdata == null || !(outdata.getClass() == Format.byteArray)
    || ((byte[]) outdata).length < BLOCK_SIZE)
    outdata = new byte[BLOCK_SIZE];
    buffer.setData(outdata);
    byte[] data = (byte[])buffer.getData();
    int bytes = bais.read(data);
    buffer.setData(data);
    buffer.setFormat(audioFormat);
    buffer.setTimeStamp(System.currentTimeMillis());
    buffer.setSequenceNumber(seqNo);
    buffer.setLength(BLOCK_SIZE);
    buffer.setFlags(0);
    buffer.setHeader(null);
    seqNo++;
    public boolean willReadBlock()
    return bais.available() > 0;
    public boolean endOfStream()
    return willReadBlock();
    public ContentDescriptor getContentDescriptor()
    return cd;
    public long getContentLength()
    return (long)data.length;
    public Object getControl(String controlType)
    try
    Class cls = Class.forName(controlType);
    Object cs[] = getControls();
    for (int i = 0; i < cs.length; i++)
    if (cls.isInstance(cs[i]))
    return cs[i];
    return null;
    catch (Exception e)
    // no such controlType or such control
    return null;
    public Object[] getControls()
    return controls;

    Here's some additional information. After making the following changes to MyPullBufferStream class, I can play a wav file with gsm-ms encoding with one issue: the wav file is played many times faster.
    protected AudioFormat audioFormat = new AudioFormat(AudioFormat.GSM, 8000.0, 8, 1,
                Format.NOT_SPECIFIED, AudioFormat.SIGNED, 8, Format.NOT_SPECIFIED,
                Format.byteArray);
    // put the entire byte array into the buffer in one shot instead of
    // giving a portion of it multiple times
    public void read(Buffer buffer) throws IOException
            synchronized (this)
                Object outdata = buffer.getData();
                if (outdata == null || !(outdata.getClass() == Format.byteArray)
                        || ((byte[]) outdata).length < BLOCK_SIZE)
                    outdata = new byte[BLOCK_SIZE];
                    buffer.setData(outdata);
                buffer.setLength(this.data.length);
                buffer.setOffset(0);
                buffer.setFormat(audioFormat);
                buffer.setData(this.data);
                seqNo++;
        }

  • How to convert character streams to byte streams?

    Hi,
    I know InputStreamReader can convert byte streams to character streams? But how to convert the character streams back to byte streams? Is there a Java class for that?
    Thanks in advance.

    When do you have to do this? There's probably another way. If you just start out using only InputStreams you shouldn't have that problem.

  • Using java type strings in objective C

    HI all,
    I am into a greater mess of creating a java equivalent string using NSString class. I need to a convert some strings into bytes and then I have to write in streams. The problem is in java the length of character is 2 bytes. But in objective C the length of char is 1 byte. In java they used to convert the the entire sting into char array and then the char array into byte array and then they write in the streams. I need to implement same as java. Using NSString , there are methods available to convert into NSData . from the object of NSData , the byte Array can be obtained. but the length of the byte array compared to the length of byte array in java seems to be half. I have used "NSUTF8StringEncoding" to encode the string into NSData. Is there anyway to obtain the above said scenario using objective C.
    Regards,
    Mohammed Sadiq.

    HI xnav,
    thanks a lot .. Following is my code :
    NSData *data = [@"12C58CE4DB9752C" dataUsingEncoding: NSUnicodeStringEncoding];
    int len = [data length];
    here the value of len is 32 bytes.
    anyway I didn't try out using CString.
    I also like to clarfiy the usage of unichar. Following is the code that i used to convert, to and from NSData using unichar :
    // converting to NSData
    +(NSData *)NSDataFromString:(NSString *)value_
    int len = [value_ length] * sizeof(unichar);
    unichar *buffer = (unichar *)malloc(len);
    [value_ getCharacters:buffer];
    NSData *data = [NSData dataWithBytes:buffer length:len];
    free(buffer);
    return data;
    // converting into NSString :
    +(NSString *)NSDataToString:(NSData *)data_
    unichar *characters = (unichar *)[data_ bytes];
    NSString *value = [NSString stringWithCharacters:characters length:[data_ length]];
    return value;
    I tried converting a sample string with above methods its working. shall i follow the above. does it affects any values that i used to fetch from the server.
    awaiting for your response
    Regards,
    Mohammed Sadiq.

  • Merge LiveCycle Form with XML using JAVA

    Hello.
    I am trying to find out how to merge non-interactive form with XML (using JAVA) so the users can see the final output form with the data filled in.
    What are my choices..?
    So far, I have created the interactive forms as template using LiveCycle 8 and wrote ASP.NET code to extract data and store it in SQL database when the user fill out and submit the form.
    It works great but another agency wants to access the form as well.
    They told us that they will create the XML themselves from the database, so they just need to combine the form with XML to display it (non-interactive form).
    They want to use JAVA but I am not sure how to do that...
    Any suggestion?

    Assuming that you start with XML in an org.w3c.dom.Document that stores the XML data. Before you can merge it into a form, you have to convert it to a com.adobe.idp.Document object. TO convert a org.w3c.dom.Document to a com.adobe.idp.Document object -- use the following Java code:
    private Document convertDataSource(org.w3c.dom.Document myDOM)
    byte[] mybytes = null;
    try
    //Create a Java Transformer object
    TransformerFactory transFact = TransformerFactory.newInstance();
    Transformer transForm = transFact.newTransformer();
    //Create a Java ByteArrayOutputStream object
    ByteArrayOutputStream myOutStream = new ByteArrayOutputStream();
    //Create a Java Source object
    javax.xml.transform.dom.DOMSource myInput = new DOMSource(myDOM);
    //Create a Java Result object
    javax.xml.transform.stream.StreamResult myOutput = new StreamResult(myOutStream);
    //Populate the Java ByteArrayOutputStream object
    transForm.transform(myInput,myOutput);
    // Get the size of the ByteArrayOutputStream buffer
    int myByteSize = myOutStream.size();
    //Allocate myByteSize to the byte array
    mybytes = new byte[myByteSize];
    //Copy the content to the byte array
    mybytes = myOutStream.toByteArray();
    catch (Exception e) {
    System.out.println("The following exception occurred: "+e.getMessage());
    //Create a com.adobe.idp.Document object and copy the
    //contents of the byte array
    Document myDocument = new Document(mybytes);
    return myDocument;
    THen you can merge myDocument into the Form using renderPDFFOrm:
    FormsResult formOut = formsClient.renderPDFForm(
    formName, //formQuery
    myDocument, //inDataDoc
    pdfFormRenderSpec, //PDFFormRenderSpec
    uriValues, //urlSpec
    fileAttachments //attachments
    Hope this helps!

  • Deserializing a file not serialized using Java

    Hello ,
    I am trying to deserialize and read a file which has been previously serialized using VC++. Is there a way to read a file serialized by VC++ using Java. When i read using ObjectInputStream, exception is thrown (StreamCorruptedException). The file structure of the serialized file is as below:
    PC Records(Array)
    ObjectRecord
    Name;(string)
    SecurityLevel;(unsigned char)
    SecurityGroup;(string)
    ScanTime;(unsigned char)
    ElementNum;(int)
    PCDevice;(unsigned char)
    m_SerNum[5];(unsigned char)
    m_DeviceChanCount; (unsigned char)
    m_ModelID; (unsigned char)
    m_ChanNum; (unsigned char)
    m_LastBlock; (unsigned short)
    m_ScanTime; (unsigned char)
    m_Owner; (unsigned char)
    m_Gain; (unsigned char)
    PCPath;(string)
    m_PCName;(string)
    a; (unsigned char)
    b; (unsigned char)
    could somebody help me deserialize and read this file using Java. Any help and sample source code is greatly appreciated.

    This can't be read from Java Serialization API 'cause Java Serialization API has it's on propietary format (that's one reazon why J2SE 1.4 introduced XML serialization)
    If you need to read a file serialized in VC++, you will need to implement the code to read the file in Java.
    If you only need to read the file secuentially (one record after the other loaded into memory) you can use a java.io.FileInputStream, and wrap it in a java.io.BufferInputStream to optimize reading.
    The interface java.io.DataInput have a lot of methods you can use to read the fields (read signed ints, unsigned ints, chars, bytes). You can use then java.io.DataInputStream to wrap InputStream and read this kind of fields. You have to take special care with chars and strings, 'cause they are unicode in java and probably only ASCII on the VC++ generated file. Probably strings will have to be read byte after byte until the \0 mark is reached, unless string fields have a predefined length, in this case you can read [length] bytes from the input stream and create a string from this array.
    If you need random access then you need java.io.RandomAccessFile, it also implements java.io.DataInput, so you have the methods to read ints, shorts, bytes, etc.
    UTF strings are strings using UTF encoding, so probably this method will not help much in this case.
    Rivas

  • Is there a way to compress using Java deflator & uncompress using UTL ?

    hi,
    I was wondering if there is a way to compress using Java deflator on the java side & then uncompress in the stored procedure. UTL_COMPRESS.LZ_UNCOMPRESS(BLOB) ?
    I tried that, but I'm currently getting Invalid data exceptions..
    The Other option is to use Java Inflator in the Java stored procedure. But I want to avoid java stored procedures.
    Thanks in advance.
    /// java side
    String inputString = loadXML (inputfile);
    byte[] input = inputString.getBytes("UTF-8");
    byte[] output = new byte[inputString.length()];
    Deflater compresser = new Deflater(Deflater.BEST_SPEED, true);
    compresser.setInput(input);
    OracleCallableStatement insertALLStatement = (OracleCallableStatement) con.prepareCall(insertALLSQL);
    InputStream stream = new ByteArrayInputStream(data);
    insertALLStatement.setBinaryStream(1, stream, (int)data.length);
    insertALLStatement.execute();
    // pl sql
    create or replace PROCEDURE INSERTBYTES
    ( compressed IN BLOB
    ) AS
    uncompressed:=UTL_COMPRESS.lz_uncompress (compressed);
    ...

    That depends.
    Does Java Deflator use the same compression technique as UTL_COMPRESS.LZ_UNCOMPRESS? i.e. is it using Lempel Ziff compression algorithms. If so, then, yes, there's a possibility it could work, however it also depends if the Java Deflator stores header information about the compressed data differently to how LZ_UNCOMPRESS expects it, or even if header information is included or it's just raw compressed data.
    It sounds a bit like compressing a file with Yoshi compression and then trying to use PKZIP to uncompress it methinks, in which case you're going to be out of luck. You have to ensure the compression algorithms and file formats are compatible.

  • Coversion from byte stream to character & character to byte stream.

    This is a test program.
    import java.io.*;
    class Test
         public static void main(String[] args)
              System.out.println("Hello World!");
              try
                   BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File("C:/javafiles/testing/Picture.jpg"))));
                   PrintWriter bw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(new File("C:/javafiles/testing/Copy.jpg"))));
                   String in = br.readLine();
                   while (in != null)
                        bw.println(in);
                        in = br.readLine();
                   br.close();
                   bw.close();
              catch (Exception e)
                   System.out.println("\n\n**********Exception Occured**************\n" + e);
    **First of all I read jpg file convert it into character stream from byte stream.
    **and copy it back and convert it back into byte steam from character stream.
    **The file copied back is corrupted.(getting open but display has fully scattered.)
    **That means data has been lost in conversion.
    **is it due to the encoding, I havn't specified while writing, or it always happens when we convert from byte stream to character and vice versa.
    **What encoding should I use while writing jpg files.
    please comment.

    **First of all I read jpg file convert it into
    character stream from byte stream.
    **and copy it back and convert it back into byte
    steam from character stream.First of all this operation is meaningless. A JPEG file doesn't contain anything that can be converted to characters. Delete the 'conversions' and all will be well.
    **What encoding should I use while writing jpg files.None. Don't use an encoding. Don't use Readers and Writers. Use InputStreams and OutputStreams only.

Maybe you are looking for