Questions about input/output streams

In the following tutorial:
http://chortle.ccsu.ctstateu.edu/CS151/Notes/chap85/ch85_10.html
It mentions that some methods, such as write(), writeByte(), writeBytes(), and writeChar(), return the low eight bits of the argument to the output stream. I am a little unsure of what exactly that means, might somebody be able to clarify for me?
In addition, I've been encountering the flush() method in some of the byte- and character-streaming objects that deal with buffers. What exactly is the flush() method's purpose, and when might it be used? Thank you.

flush pushes the data out of the buffer. the write methods write to the buffer, when the buffer is full, it flushes itself (usually), or it could block the write methods (in theory). flush just lets you make sure that it's flushed.
I'm not sure there's any reason to worry about high and low bytes in Java most of the time. I suppose, like anything, there's times you need to, but I can't think of any offhand.

Similar Messages

  • Socket input / output stream

    Does anyone know if the input / output streams returned by getInputStream() / getOutputStream() in java.net.Socket are buffered by default?

    y they are buffered, but to use the buffer, you have to use available() and read(byte[] buf ...

  • Buffered input/output stream

    How the buffereing is done in buffered input/output streams?
    From the API doc I got to know that they use internal buffer to store bytes before they can be read or written. But i found that File input/output stream also have methods like read(byte[]) or write(byte[]). So what is extra in buffered input/ouput streams? Does the phrase "buffered" suggests that bytes can be read from an array or be written to an array? Am i thinking the right way?

    How the buffereing is done in buffered input/output
    streams?
    From the API doc I got to know that they use internal
    buffer to store bytes before they can be read or
    written. But i found that File input/output stream
    also have methods like read(byte[]) or write(byte[]).Thouse are your buffer, not the streams'.
    So what is extra in buffered input/ouput streams?
    Does the phrase "buffered" suggests that bytes can be
    read from an array or be written to an array? Am i
    thinking the right way?No. It means that the stream either prefetches some data even if it's not requested yet, or that it withholds data that it's supposed to write until it's flushed or gets a larger chunk.

  • CBWFQ: Question about the output of "show policy-map interface" command

    Hi everyone,
    I have a question about the output of "show policy-map interface" command.
    The following is the output of this command and lower side of the output shows
    (total queued/total drops/no-buffer drops) 0/342/0
    If the packets drop occur due to the situation of no enough buffer,
    "no-buffer drops" counted up. But "no-buffer drops" has not been counted up.
    The "no-buffer drops" is 0 (zero) but "total drops" are counted as 342.
    I guess there are other factors except "no-buffer drops" to add "total drops".
    But I can not find any information about "other factors".
    So I would like to know the "other factors" added to "total drops".
    reserch-3725#sh policy-map interface fastethernet0/1
    FastEthernet0/1
    Service-policy output: shaping
    Class-map: kdpc (match-all)
    146956873 packets, 115209221595 bytes
    5 minute offered rate 156000 bps, drop rate 0 bps
    Match: access-group name YOKOHAMA_to_CHINO
    Traffic Shaping
    Target/Average Byte Sustain Excess Interval Increment
    Rate Limit bits/int bits/int (ms) (bytes)
    9360000/9360000 58500 234000 234000 25 29250
    Adapt Queue Packets Bytes Packets Bytes Shaping
    Active Depth Delayed Delayed Active
    - 0 146956724 3539850811 2960247 3851843541 no
    Class-map: class-default (match-any)
    552458414 packets, 249687580329 bytes
    5 minute offered rate 242000 bps, drop rate 0 bps
    Match: any
    Traffic Shaping
    Target/Average Byte Sustain Excess Interval Increment
    Rate Limit bits/int bits/int (ms) (bytes)
    3072000/3072000 19200 76800 76800 25 9600
    Adapt Queue Packets Bytes Packets Bytes Shaping
    Active Depth Delayed Delayed Active
    - 0 552453209 573909865 30358216 2926188156 no
    Service-policy : policy1
    Class-map: dlsw (match-all)
    979578 packets, 264843255 bytes
    5 minute offered rate 0 bps, drop rate 0 bps
    Match: access-group name acl-dlsw
    Queueing
    Output Queue: Conversation 137
    Bandwidth 128 (kbps) Max Threshold 64 (packets)
    (pkts matched/bytes matched) 20922/17371500
    (depth/total drops/no-buffer drops) 0/0/0
    Class-map: telnet (match-all)
    29938 packets, 1806058 bytes
    5 minute offered rate 0 bps, drop rate 0 bps
    Match: access-group name acl-telnet
    Queueing
    Output Queue: Conversation 138
    Bandwidth 64 (kbps) Max Threshold 64 (packets)
    (pkts matched/bytes matched) 639/38900
    (depth/total drops/no-buffer drops) 0/0/0
    Class-map: class-default (match-any)
    551448911 packets, 249420939729 bytes
    5 minute offered rate 242000 bps, drop rate 0 bps
    Match: any
    Queueing
    Flow Based Fair Queueing
    Maximum Number of Hashed Queues 128
    (total queued/total drops/no-buffer drops) 0/342/0
    Your information would be appreciated.

    Details infomatiuon regarding show policy-map interface
    http://www.cisco.com/en/US/tech/tk543/tk545/technologies_tech_note09186a008010dd6a.shtml
    http://www.cisco.com/en/US/tech/tk543/tk760/technologies_tech_note09186a0080108e2d.shtml
    http://www.cisco.com/univercd/cc/td/doc/product/software/ios123/123cgcr/qos_r/qos_s2g.htm#wp1146884

  • Object input/output stream

    Hi, i'm currently doing a software enginnering project at university. I need to understand how to save and read from files.
    I've been told to look at object input/output stream, which I have, but I can't get my head around what's written in the books. Does anyone know where i can find a good tutorial on this subject?
    thanks
    AK

    I like the tutorial on this site because it tells you what to use for what you're doing (click on Using the Streams). Hope it helps!
    http://java.sun.com/docs/books/tutorial/essential/io/index.html

  • Get multiple Input/Output Stream from same socket ?

    For a better express of my problem i will put my test example
    I have those 4 classes
    package test;
    import...
    public class ReaderExecutor extends Thread{
            private InputStream in = null;
            private static int defaultID = 0;
            private int ID = getID();
            public ReaderExecutor(InputStream in){
                this.in = in;
            public void run(){
                try {
                    int c ;
                    while ((c=in.read())!=-1)
                        System.out.println("ReaderThread " + this.ID + ":" + c);
                catch (IOException e) {
                    System.out.println("ReaderThread "+this.ID+" stopped !");
            private static int getID(){
                return defaultID++;
    package test;
    import...
    public class WriterExecuter extends Thread{
        OutputStream out = null;
        private static boolean odd = true;
        private boolean isOdd ;
        public WriterExecuter(OutputStream out) {
            this.out = out;
            isOdd = odd;
            odd = !odd;
        public void run(){
            try{
                for (int i = isOdd?1:2;i<10;i+=2){
                    System.err.println(i);
                    out.write(i);
            }catch(Exception e){
                System.out.println("WriterThread stopped !");
    package test;
    import...
    public class Main { 
        public Main() {
        public static void main(String[] args) throws Exception {
            try{
                ServerSocket ss = new ServerSocket(9090);
                System.out.println("Ascult ... ");
                Socket client = ss.accept();
                new ReaderExecutor(client.getInputStream()).start();
                //Thread.sleep(2000);
                new ReaderExecutor(client.getInputStream()).start();
            }catch (Exception e){
                e.printStackTrace();
    package test;
    import...
    public class Main1 {
        public Main1() {
        public static void main(String[] args) {
            try{
                Socket s = new Socket("localhost",9090);
                WriterExecuter t= null ;
                t = new WriterExecuter(s.getOutputStream());
                t.start();
                t = new WriterExecuter(s.getOutputStream());
                t.start();
            }catch(Exception e){
                e.printStackTrace();
    }Now if i run successive Main , Main1 i get this output
    Ascult ...
    ReaderThread 0:0
    ReaderThread 1:0
    ReaderThread 0:0
    ReaderThread 1:0
    ReaderThread 0:0
    ReaderThread 1:0
    ReaderThread 0:0
    ReaderThread 1:0
    ReaderThread 0:0
    ReaderThread 0 stopped !
    ReaderThread 1 stopped !The question is can i get other Input/Output individual streams with a separate logic functionality from the same socket?
    From this example it seems i can't :(
    Thx
    Alex

    For what you are trying to do the simplest solution is to have one socket per "stream" that is the way they are designed to be used.
    However, you can multiplex multiple stream over a single socket, but you have do the coding yourself or use a solution which does this for you e.g. JMS. (There is no support at the socket level for this)

  • Question about inputting data to a pivot table

    Hi,
    I have 2 questions about using the ADF pivot table component (I would like it for data input).
    1. Is it possible to paste into multiple cells (i.e. using cut in Excel for example, and then pasting the cells into the pivot table) ?
    2. What is the recommended approach for the case where there is no data values (no rows on the database table)? For example, if I have regions, products, measures and time periods and then want to be able to select some regions and some products to enter new sales figures - and then create the rows on the database with save button, is there a recommended way to do this?
    (Jdeveloper version: 11.1.2.0.0)

    Anybody able to help with this?

  • A question about input values inside PL/SQL block

    Dear all,
    I would appreciate if you could kindly help me with this question.
    Consider the following code.
    DECLARE
      myvar1 NUMBER;
      myvar2 NUMBER;
      myvar3 NUMBER;
    BEGIN
      myvar1 := &1;
      myvar2 := &2;
      myvar3 := &3;
      DBMS_OUTPUT.put_line('myvar1 = ' || myvar1);
      DBMS_OUTPUT.put_line('myvar2 = ' || myvar2);
      DBMS_OUTPUT.put_line('myvar3 = ' || myvar3);
    END;
    /This program reads three values as input and prints them. However, I noticed that if instead of writing
    myvar1 := &1;
    myvar2 := &2;
    myvar3 := &3;I write
    myvar1 := '&1';
    myvar2 := '&2';
    myvar3 := '&3';The program will have very same result. I would like to know whether there is a semantic difference between both syntax,
    that is, is there any difference between for example &myvar1 and 'myvar1'?
    Thanks in advance,
    Dariyoosh

    Try this
    CREATE TABLE test_sem  (x VARCHAR2(10), y NUMBER)
    INSERT INTO test_sem VALUES ('A',1);
    INSERT INTO test_sem VALUES ('B',1);
    INSERT INTO test_sem VALUES ('C',1);
    INSERT INTO test_sem VALUES ('D',1);
    SELECT * FROM test_sem WHERE x='&1' --OK
    SELECT * FROM test_sem WHERE x=&1 -- error not a valid number
    SELECT * FROM test_sem WHERE y=&1 -- ok
    SELECT * FROM test_sem WHERE y='&1' -- ok since numbers can be converted to strings'&1' is for characters &1 for numbers;
    You can verify form above test case
    Regards,
    Bhushan

  • Simple question about sockets and streams - please answer it!

    Hi
    I have a server socket and a client socket. Both are up and runing. But I'm having problems to send a string from the client and read only the four first bytes on the server. Please read the code and some other comments below:
    socket client:
    DataOutputStream out =
    new DataOutputStream(socket.getOutputStream());
    // read from keyboard input
    BufferedReader myinput =
    new BufferedReader(new InputStreamReader(System.in));
    System.out.println("Type any 4 chars and [enter].");
    String any = myinput.readLine();
    out.writeBytes(any);
    out.flush();
    server socket:
    in = new DataInputStream(socket.getInputStream());
    byte[] id = new byte[4];
    in.read(id, 0, 4);
    System.out.print(new String(id));
    According to the code, it should read 4 bytes from the input stream (in.read(id, 0, 4)), but it displays only the first byte. For example, if I type "hello" on client, the serve should show "hell" but it shows just "h"
    Any ideias? Thanks!

    Hi,
    Check the Javadoc for 'in.read(id, 0, 4);' This reads up to 4 bytes and returns the number of bytes read. You need something along the lines of
    int count = 0;
    while (count < 4)
    count += in.read(id, count, 4-count);
    Roger

  • PaCkAgE DaTaStReAm input/output stream utilities

    I am trying to read/write Solaris installable package streams and I was wondering if someone had already invented this wheel. Since I cannot seem to find ANY documentation on the internet about the file format (and, more importantly, the header encoding) for the items in these files I was hoping someone here would have information about this.
    And, no, I am not able to exec() mkpkg, pkgtrans, etc as I may not be running on a Solaris machine.

    Wow. That was easy. The Sun package datastream format is simply two cpio files concatenated together on a 512 byte boundary. Still trying to figure out the main package header (which is also 512 bytes) and contains the "PaCkAgE DaTaStReAm" tag and the name of the package itself followed by two numbers, a '1', which hold no special meaning yet and the number of 512-byte blocks occupied by the installed package). So far my ant task is shaping up nicely and I'll be able to create Solaris packages via build.xml :D

  • Question About Inputs

    Right now I have a TDM HD2 System.
    I am new to Logic 8, though used to have Logic 7 last year for a few months. So far, very impressed and everything is working OK tonight (I just installed L8 a couple hours ago). So I'm just SLOWLY playing around, seeing if I can grasp everything and remember how it works. I promise to read the manual. BUT....
    I have a 96 i/O Digi interface, and it has a mic going in INPUT 1. I can add a track in Logic and hear this mic fine. I also have an ADAT lightpipe coming into the Digi interface from a second Mac. It carries 8 channels of samples I run off the other Mac. I cannot figure out how to get Logic to see these ADAT inputs, because the choice in the drop down menu is Audio 1-8 only. So it sees my analog inputs, but not the adats. Any ideas?
    Thanks
    Tom

    Logic will make available any audio inputs that OSX tells it exist.
    Run the Audio/MIDI setup utility - are you other devices displayed there? If not, OSX doesn't know about them. Do they have core audio drivers, or are they proprietry Digi things?

  • A question about switching between streams

    Hi,
    I am using a set of streams and readers in the following format to read from an ascii / binary mixed file. Once i read past all the ascii I break out of the loop and then use the data input stream to read som four byte floats from the binary data.
    If you look at the extract from the file that lase piece of ascii that I read in is EST_Header_End. It is then followed by the floats. I know that the .. following the EST_Header_End is carraige return and new line. My problem is that when i start reading the floats i get NaN even though i know for a fact that the values following the .. are floats.The second float that it read in is definitely 1.0 . I cannot understand why this is happening. Surely if i start using a DataInputStream it should start at the same position as the BufferedReader left off.
    fis = new FileInputStream(fileName);
    bis = new BufferedInputStream(fis);
    //allow a reader from a stream
    isr = new InputStreamReader(bis);
    //read the raw bytes
    dis = new DataInputStream(bis);
    //read the characters and strings
    br = new BufferedReader(isr);EXTRACT FROM FILE
    Channel_10 lpc_N..
    EST_Header_End..
    <..@?...K...>..;>.P.>...>.S:>....4f....}...."=...>...<._@?...K{s.>...>.U.>.L6>..<>....5.....4..0...
    for(int k = 0; k < numFrames; k++){
         System.out.println( "reading track" );
         voice.diphone[index].frame[k].setframeTime(dis.readFloat());
         counter += 4;
         System.out.println( "time " + voice.diphone[index].frame[k].getFrameTime());
         voice.diphone[index].frame[k].setIsVal(dis.readFloat());
         System.out.println("isVal "+ voice.diphone[index].frame[k].getIsVal());
         voice.diphone[index].frame[k].setGain(dis.readFloat());
         System.out.println("isVal "+ voice.diphone[index].frame[k].getGain());
         counter += 4;
         for(int l = 0; l < (numChannels); l++){
              voice.diphone[index].frame[k].setValueLpc((dis.readFloat()),l);
              counter += 4;                               
              System.out.println("LPC coefficents at diphone "+ index +" " +"frame "+ k+" Lpc coefficent "+l+" " + voice.diphone[index].frame[k].getValueLpc(l));
    }

    I assume that you read
    EST_Header_End..
    with the BufferedReader, using readLine().
    The problem is that when doing the readLine() (or any read for that matter) using BufferedReader, it's going to read more data than it needs and store those bytes in the BufferedReaderClass. Then when DataInputStream goes to read, it will not know this and read somewhere down the stream.
    Probably, as unpleasant as this is, you need to layer the DataInputStream on top of the BufferedReader. Or maybe you can do something fancy with mark() and reset() altho, doubtful.
    >
    fis = new FileInputStream(fileName);
    bis = new BufferedInputStream(fis);
    //allow a reader from a stream
    isr = new InputStreamReader(bis);
    //read the raw bytes
    dis = new DataInputStream(bis);
    //read the characters and strings
    br = new BufferedReader(isr);EXTRACT FROM FILE
    Channel_10 lpc_N..
    EST_Header_End..
    <..@?...K...>..;>.P.>...>.S:>....4f....}...."=...>...<.
    @?...K{s.>...>.U.>.L6>..<>....5.....4..0...
    for(int k = 0; k < numFrames; k++){
         System.out.println( "reading track" );
         voice.diphone[index].frame[k].setframeTime(dis.readFlo
    t());
         counter += 4;
    System.out.println( "time " +
    voice.diphone[index].frame[k].getFrameTime());
         voice.diphone[index].frame[k].setIsVal(dis.readFloat()
    System.out.println("isVal "+
    voice.diphone[index].frame[k].getIsVal());
         voice.diphone[index].frame[k].setGain(dis.readFloat())
    System.out.println("isVal "+
    voice.diphone[index].frame[k].getGain());
         counter += 4;
         for(int l = 0; l < (numChannels); l++){
              voice.diphone[index].frame[k].setValueLpc((dis.readFl
    at()),l);
              counter += 4;                               
    System.out.println("LPC coefficents at diphone "+
    + index +" " +"frame "+ k+" Lpc coefficent "+l+" " +
    voice.diphone[index].frame[k].getValueLpc(l));

  • Just ordered my dv7t series notebook and question about inputs

    I have an older Promedia Ultra 5.1 sound system that was once connected to my Dell desktop that now crashed.  I LOVE these speakers and would really love to use them when I want to play music from my laptop. Are there inputs on the laptop for me to plug these into..there are 3 mini plugs.
    Thanks!! 

    Logic will make available any audio inputs that OSX tells it exist.
    Run the Audio/MIDI setup utility - are you other devices displayed there? If not, OSX doesn't know about them. Do they have core audio drivers, or are they proprietry Digi things?

  • 2 part question about PDF output in RoboHelp 8

    I've been able to generate fairly clean-looking PDFs in RoboHelp with the entire Help contents.
    My 2 questions are:
    1)  Is there a way to generate a Word document from the Help contents?  I notice that when I choose "batch generate" it appears to generate
    a Word doc that behaves as a distiller file and then creates a PDF.  Is there a way to generate just a Word document?
    2)  If not, is there a way to set the settings within RoboHelp to allow you to edit the text in the generated PDF?
    I do not have the full version of Acrobat and can't edit text with Adobe Reader. 
    thanks for any feedback!
    Rachel

    Hi Rachel
    Examine the properties of your Printed Documentation Single Source Layout recipe.
    You might be pleasantly surprised.
    Cheers... Rick
    Helpful and Handy Links
    RoboHelp Wish Form/Bug Reporting Form
    Begin learning RoboHelp HTML 7 or 8 within the day - $24.95!
    Adobe Certified RoboHelp HTML Training
    SorcerStone Blog
    RoboHelp eBooks

  • Quick question about my output

    I am trying to write a project to calculate 5 birthdays. There are no errors and it calclates the first 4 birthdays fine but when i type in the 5 birthday it comes up with the wrong birthday. Or if i enter the same brithday 5 times it come up wrong
    here are the bdays i have to enter
    1/1/90, 9/25/90, 9/30/90, 10/15/90, 11/1/90
    thanks in advance
    package cmpproject2;
    import chapter2.MyInput;
    public class Project2Class
    public static void main(String[] args)
    { //declare variables
    int year, myyear, month, mymonth, day, myday, age, count, otherbdays;
    //prompt user to enter today's year
    System.out.println("Please enter today's year: example 2002");
    year = MyInput.readInt();
    if(year < 1)
    System.out.println("invalid year, please enter a positive number");
    year = MyInput.readInt();
    //prompt user to enter today's month
    System.out.println("Please enter today's month example 1-12");
    month = MyInput.readInt();
    if(month < 1 || month > 12)
    System.out.println("invalid month, please enter again(1 to 12)");
    month = MyInput.readInt();
    //prompt user to enter today's day
    System.out.println("Please enter today's day");
    day = MyInput.readInt();
    if (day < 1 || day > 31)
    System.out.println("Please enter again (1 to 31)");
    day = MyInput.readInt();
    //ask how many birthdays
    System.out.println("Enter # of birthdays you wish to calculate");
    otherbdays=MyInput.readInt();
    count=0;
    while(count<otherbdays)//this will loop once for each bday
    //prompt user to enter your birthday's year
    System.out.println("Please enter your birthday's year example yyyy");
    myyear = MyInput.readInt();
    if(myyear < 1)
    System.out.println("invalid year, please enter a positive number");
    myyear = MyInput.readInt();
    //prompt user to enter your birthday's month
    System.out.println("Please enter your birthday's month");
    mymonth = MyInput.readInt();
    if(mymonth < 1 || mymonth > 12)
    System.out.println("invalid month, please enter again(1 to 12)");
    mymonth = MyInput.readInt();
    //prompt user to enter your birthday's day
    System.out.println("Please enter your birthday's day # 1-31");
    myday = MyInput.readInt();
    if (myday < 1 || myday > 31)
    System.out.println("Please enter again (1 to 31)");
    myday = MyInput.readInt();
    if (myday > day)
    month = month - 1;
    if (mymonth > month)
    year = year -1;
    //calculate the user age
    age = year - myyear;
    //Display results
    System.out.println(" Your age is: " + age);
    //get next bday
    count++;
    System.out.println();
    System.out.println("Programmer: Brian Jacoviello");
    }//end main method
    }//end Project2

    I compiled your program and tested it, heres all in and output:
    Please enter today's year: example 2002
    2002
    Please enter today's month example 1-12
    10
    Please enter today's day
    15
    Enter # of birthdays you wish to calculate
    5
    Please enter your birthday's year example yyyy
    1990
    Please enter your birthday's month
    1
    Please enter your birthday's day # 1-31
    1
    Your age is: 12
    Please enter your birthday's year example yyyy
    1990
    Please enter your birthday's month
    9
    Please enter your birthday's day # 1-31
    25
    Your age is: 12
    Please enter your birthday's year example yyyy
    1990
    Please enter your birthday's month
    9
    Please enter your birthday's day # 1-31
    30
    Your age is: 11
    Please enter your birthday's year example yyyy
    1990
    Please enter your birthday's month
    10
    Please enter your birthday's day # 1-31
    15
    Your age is: 10
    Please enter your birthday's year example yyyy
    1990
    Please enter your birthday's month
    11
    Please enter your birthday's day # 1-31
    1
    Your age is: 9
    Programmer: Brian Jacoviello
    So, the error isn't that hard to find. Look at this:
    if (myday > day)
    month = month - 1;
    if (mymonth > month)
    year = year -1;You change the current date. Your first birthday is always correct, but what happens if you first type in 9/25/90 and after that 10/15/90?
    The first if statement is true, because 25>15 so you decrease the current date by one. The age for the first birthday is correct, but now you type in the second (10/15/90) I can assure you that a guy with this birthday is exactly 12 years old!
    But remember, you decreased the month of the current date by 1, so the variable month holds the value 9 (10-1). Now the second if statement is true, and the year of the date is decreased by 1. So your program would show an age of 11.
    It's really simple to correct the mistake just concentrate on these lines:
    if (myday > day)
    month = month - 1;
    if (mymonth > month)
    year = year -1;If you can't correct it post again, you will get more help.

Maybe you are looking for

  • IPhone locked to a stranger's icloud account- please help I am not a thief

    I had bought iPhone 5 from AT&T the day it was released. After using it for a year and half, I decided to gift it to my dad. I completely wiped the phone to it's factory settings and shipped it to my dad. After my dad received the phone, he took it t

  • My calendar is gone...HELP!!

    I thought I was setting my iPad to backup to the Cloud. I must have done something wrong,since the next day I turned the iPad on and the entire calendar was blank. Before I do anything else stupid, I need to know how to recover my calendar. I rarely

  • How can i migrate from oracle 10gR2 Linux x68 to SPARC Solaris 10?

    Hi friends... I have a 30GB database and need to migrate from Linux x86 to Solaris 10 SPARC. Solaris 10 SPACR come this monday, then it's clean. How i proceed? Rod.

  • Pdf fonts problem in 10.6.7 - resolved in 10.6.8 combo update?

    The pdf fonts problem in 10.6.7 forced me to go through the long uninstall process after a couple days stressing over what the problem was -- it was Adobe tech support that finally informed me what the problem was. Is the problem fixed in the 10.6.8

  • Opening CS2 created files in CS4 issue

    we commonly work with foor plans which multiple laters of data.  We are noticing that nearly all of the files created in cs2 are displaying automatically moving layers when opened in CS4.  A layer of symbols or objects simply "shifts" to an alternate