Saving an array to a file

i have the following code:
  public static void saveData(String[][] data, String fileName) throws IOException
    //need a file output steam for the specified file
    FileOutputStream fileOutputStream =
      new FileOutputStream(fileName);
    //need an object output stream connected to our file output stream
    ObjectOutputStream objectOutputStream =
      new ObjectOutputStream(fileOutputStream);
    objectOutputStream.writeObject(data);
    objectOutputStream.flush();
    fileOutputStream.close();
  }I'm trying to save the containts of a string array to a text file - from which I also want to reload it again later. However I keep getting some sort of unreported exception error when I try.
Any suggestions?

Are you sure that it is complaining about the method
you have shown us here? You have declared the method
to throw the IOException unless you haven't imported
the java.io package. Also this isn't going to compile
because writeObject takes an Object as the argument
and you are trying to pass in a String[][] you will
need to loop through you array of arrays and
writeObject for each one I think.hmmm...i suspect it might work if I used a vector intead of my 2 dimensional string array...but that would mean re-writing a huge amount of code.
i dont supose its possible to convert my array to a vector?

Similar Messages

  • Problem saving 2D array to binary file

    I am getting some strange results when trying to write a transposed 2D array of Unisgned 8-bit data to a binary file. Attached is an example program ("071026_ArraySave_Bug.vi") which demonstrates the suspicious behavior.
    The program generates a small 2D array of U8 data, then saves it to two temporary files using two different methods.
    1) Row-by-row: The 2D array is auto-indexed, and the indexed row is written to file at once (with the prepended size option disabled).
    2) Point-by-point: Two For loops are used to auto-index each element and write it to file individually.
    The saved files are then reopened and the data is read into two 1D arrays for display.
    The bug occurs when the generated 2D array is transposed before being saved to file. In the point-by-point method, the data is always saved to the file as desired, i.e. by row or by column depending on whether the data was transposed. However, in the row-by-row method the data is incorrectly saved when the input data is transposed. Without transposing the array, the row-by-row results are correct.
    Saving the array row-by-row is significantly faster for larger arrays, so this method is desired.
    Note that the option to transpose the input data in the attached VI is performed using a case structure with a boolean constant ("Bug Control"). This is important because:
    1) The bug does not occur if the boolean constant is replaced with a control.
    2) The bug does not occur if the case structure is replaced with a "Select" node from the Comparison Palette.
    3) The bug still occurs if the case structure is removed such that the array is always transposed (i.e. keep the True case).
    For now, I have been able to circumvent the bug in practice by transposing the array and then passing it through a Select with a constant True (the False case uses the untransposed array). This allows the faster row-by-row method to be used without error, but requires new memory allocation for the transposed array.
    I will appreciate any help that can be given regarding this problem, or simply confirmation that it is indeed a bug in Labview 8.5. It is worth noting that the same program did not produce any errors when run in Labview 7.
    Thank you for your help,
    David Viggiano
    Attachments:
    071026_ArraySave_Bug.vi ‏29 KB

    This is a known bug (CAR : 4DP855N3) , related to memory management. see this thread
    If I remember well, Altenbach shown somewhere that forcing the transpose operation to produce a copy of the memory was a proper workaround.
    Message Edité par chilly charly le 10-26-2007 08:40 PM
    Chilly Charly    (aka CC)
             E-List Master - Kudos glutton - Press the yellow button on the left...        
    Attachments:
    071026_ArraySave_Bug[1].png ‏2 KB

  • Saving int [][][][] array to a file

    Hello...
    I realize that I can save the array to a file by saving each bit of information separately, and then recalling it...
    I was curious whether it is possible to save an int[][][][] array to a file "as it is". that is, some way of just exporting the array to a file and then recalling it. if it is not possible, saying so is also helpful.
    Thanks.

    yes... well... i didn't necessarily mean a 4D array was common. i meant it would seem a common desire to store any array, even 1d, or an ArrayList, or anything really... other than being able to write JUST at int, or just a String, or just a double. see... it can take about 10 minutes to create this 4d array; so i can save that time by just recalling it from a file in about 2 seconds... would have figured this wasn't too uncommon of a desire... though not common enough probably.

  • Advice on saving an Array to a file on the client hard drive with Flex/Air

    hi.
    i've created a datagrid in Flex with 5 columns across with an
    unspecified number of rows as the user can "add' more rows as
    required....the user inputs text into each cell of the
    datagrid.......the dataprovider is an array....i've pretty much
    setup all the necessary save, open, etc. functions.....my main
    issue is how the datagrid--->array can best be saved as a
    file....
    thanks for your help.

    Well, in AIR you have SqlLite at your disposal. So you might
    want to create a table and stick these values in there.
    For Flex, of course, if you want to have a file you'd need to
    store this data on the server side. SharedObject gives you some
    very limited to store this data on client side.

  • Saving and loading 1D array to/from file

    Hi,
    i have some problems with my NI application. for the first, i have case structure with two cases: true and false.
    FALSE: in this case i have a for loop with 100 samples. i catch signal from my DAQ (now just Simulate Signal) and what i want is to save it in a 1D array and at the end of the loop the COMPLETE array into one text file. Problem in my vi: just the values from the last iteration are saved.
    TRUE: now i have while loop. AT THE BEGINN of the loop i need to load my array from the file and not in the middle of the loop. Why? The data from the file are needed during the loop.
    thanx in advance
    Vedran Divkovic
    RUB GERMANY
    Attachments:
    Regelsystem.vi ‏1494 KB

    According to your code, what you are saving is an array of means (one from each iteration), and NOT the last iteration. If you want to keep the entire data, it would be a 2D array.
    Why are you generating an entire waveform at each iteration? Shouldn't you just generate one point?
    LabVIEW Champion . Do more with less code and in less time .

  • Saving An Object Array to a File

    Please Help,
    I am fairly new to Java. I am trying to write a program that inputs merchandise information (ItemName, Description, Price, etc�) to an object array. The program works internally with the array perfectly, but I can�t get it to save the array to a file so it can be read and reused the next time the program is run. The class the array is built on implements Serializable, but when it tries to save it to a file, it throws an exception message saying that my object is not serializable.
    Does anyone have some code to help me save information to an array (so it can be used within the program), save the array to a disk file, and read the file back into the program the next time the program opens?
    Thank you,
    Bob

    Thank you for your help. The total code is quite lengthy so I�ve tried to pick the most relevant code to include here.
    import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;
    import java.text.*;
    import java.io.*;
    public class Class1 extends WindowAdapter implements ActionListener
    // Object Array Declaration.
    ItemInfo ItemArray[] = new ItemInfo[100];
    * This is the Inner Class that the Array is built on. I have two constructors in it because I
    * tried several different methods to make this write to the disk file
    public class ItemInfo implements Serializable
         int ItemNum;
         int DeptNum;
         String ItemName;
         String Model;
         String Description;
         float Price;
         int Units;
    // Constructors
         public ItemInfo() {};
         public ItemInfo(int inItemNum, int inDeptNum, String
                             inItemName, String inModel, String
                             inDescription, float inPrice, int inUnits)
              ItemNum = inItemNum;
              DeptNum = inDeptNum;
              ItemName = inItemName;
              Model = inModel;
              Description = inDescription;
              Price = inPrice;
              Units = inUnits;
    } // end class ItemInfo.
    * openOutputStream() *
         private void openOutputStream()
              try
              // create file and output object streams
                   outputItemFile = new FileOutputStream("A:ItemFile.txt");
                   objSaveItems = new ObjectOutputStream(outputItemFile);
              } // end try
              catch (Exception error)
                   System.err.println("Error opening file");
              } // end catch
         } // end openOutputStream().
    * closeOutputStream() *
         private void closeOutputStream()
              try
                   objSaveItems.close();
                   outputItemFile.close();
              catch (IOException error)
                   System.err.println("Error Closing File");
              } // end catch
         } // end closeOutputStream().
    * AddToItemArray() - This method just assigns the information to the Array elements *
         private void AddToItemArray()
              int ArrayNum = intItemFileSize - 1;
              ItemArray[ArrayNum] = new ItemInfo();
              ItemArray[ArrayNum].ItemNum = intNewItemNum;
              ItemArray[ArrayNum].DeptNum = intDeptNum;
              ItemArray[ArrayNum].ItemName = strItemName;
              ItemArray[ArrayNum].Model = strModel;
              ItemArray[ArrayNum].Description = strDescription;
              ItemArray[ArrayNum].Price = fltPrice;
              ItemArray[ArrayNum].Units = intUnits;
         } // end AddToItemArray().
    * WriteToFile() - This is the latest effort to write to the file. The file gets opened, and
    * the first element gets printed, but after that nothing but error messages (printed * below).
         private void WriteToFile()
              try
                   openOutputStream();
                   for (int a = 0; a <= intItemFileSize; a++)
                        objSaveItems.writeObject(ItemArray[a]);
                        objSaveItems.flush();
                   closeOutputStream();
              } // end try.
              catch (Exception error)
                   System.err.println("Error writing to file");
         } // end WriteToFile().
    This is what appears on the disk file after I run the program (three items entered):
    � sr Class1$ItemInfo�&q����B I DeptNumI ItemNumF PriceI UnitsL
    Descriptiont Ljava/lang/String;L ItemNamet Ljava/lang/String;L Modelt Ljava/lang/String;L this$0t LClass1;xp A��� t
    Claw Hammert Hammert CL550{sr  java.io.NotSerializableException(Vx �� 5   xr  java.io.ObjectStreamExceptiond��k�9��   xr  java.io.IOExceptionl�sde%��   xr  java.lang.Exception��> ; �   xr  java.lang.Throwable��5'9w��   L
    detailMessaget  Ljava/lang/String;xpt  Class1
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Saving two dimensional array to a file

    I am trying to save a two dimensional array to a file.
    If I write a part of the whole array like Filename[1] it works fine.
    But the whole array will cause an Errormessage to appea:
    "cannot find symbol"
    Here is the Code:
      RandomAccessFile output = null;
        try
          output = new RandomAccessFile( "TestPlan.plan", "rw" );
          output.seek( output.length() );       // Dateizeiger an das Ende
          output.write( Karte );  // Zeile schreiben

    Seems that OutputStreamWriter and ByteArrayOutputStream can only handle one dimensional arrays, too.in that case, break down the arrays to single objects, and serialize them individually

  • How to retrieve arrays from a file.

    If i were to save 5 arrays to a file like this.....
    DataOutputStream output;
         DataInputStream input;
         Date today = new Date();
         String filename = "phonebook";
    private String name[] = {""};
         private String surname[] = {""};
         private String home[] = {""};
         private String work[] = {""};
         private String cell[] = {""};
         try
                   output = new DataOutputStream(new FileOutputStream(filename));
              catch(IOException io)
                   JOptionPane.showMessageDialog(null,"This program could not create a storage location. Please check the disk drive and the tun the program again.","Error",JOptionPane.ERROR_MESSAGE);
                   System.exit(1);
    public void save()
              try
                   for(int i=0; i < name.length; i++)
                        output.writeUTF(name);
                        output.writeUTF(surname[i]);
                        output.writeUTF(work[i]);
                        output.writeUTF(home[i]);
                        output.writeUTF(cell[i]);
                   JOptionPane.showMessageDialog(null,"Data succesfully saved to file.","Information message",JOptionPane.INFORMATION_MESSAGE);
              catch(IOException io)
                   System.exit(1);
         }And then I want to use them again on my startup. How would I go about initialising them back into thier origianl arrays. What i mean is I want the arrays to contain theier previous saved values. Is this possible.
    I tried to do it like this but it wont work. I get no errors. It just wont return and strings at all.try
                   input = new DataInputStream(new FileInputStream(filename));
              catch(IOException io)
                   JOptionPane.showMessageDialog(null,"Could not find the correct file to read data from.","Error",JOptionPane.ERROR_MESSAGE);
              try
                   for(int i=0; i< name.length; i++)
                        name[i]=input.readUTF();
                        surname[i]=input.readUTF();
                        work[i]=input.readUTF();
                        home[i]=input.readUTF();
              cell[i]=input.readUTF();
              catch(IOException io)
              }Or is it better to create a seperate file for each array?
    Edited by: Yucca on Mar 23, 2008 2:24 PM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    Any help here please.
    Edited by: Yucca on Mar 23, 2008 6:34 PM

  • Write Text Data Array to text file

    Greetings all. I hope someone can help me as I am really under the gun. The attached vi shows the basics of what I am trying to do. I have already written a vi that takes the Cal Data Array and prints it out in a nicely formatted report. My problem is that the powers that be also want the data saved to a generic text file that can be copied and printed out anywhere they like. As such, I need to save the data to a generic text file in column format such that it will all fit on one page in landscape mode. There are a total of 12 columns of data. I have been trying to create something that would format each column to a specific length instead of them all being the same. No luck so far. Basically, I need columns 1,2,3,8 and 12 to be length of 5. The rest a length of 9. I have tried to place the formatting part in a for loop with the formatting in a case, but it does not appear to work. I really need this quick so if anyone has any ideas, please help. As always, I really appreciate the assistance.
    Thanks,
    Frank
    Attachments:
    Write Cal Data to Text File.vi ‏21 KB

    pincpanter's is a good solution. Beat me to it while I was away building an example. Similiar approach using two for loops and case statement. Here is my suggestion anyway....
    cheers
    David
    Message Edited by David Crawford on 11-23-2005 09:37 AM
    Attachments:
    Write Text Data Array to text file.vi ‏31 KB

  • Error 7 produced when saving to a spread sheet file using a compact rio

    Hi
    Im having a little difficultly saving to a spread sheet file using a compact rio. I bundled the data from a NI 9215 with a timer and stuck it into an x-y graph and that works fine as it goes round in shift registers. But then I passed the data out of my while loop unbundled it, turned it into a 2d array and tried to write it into a spread sheet file using the appropriate i/o vi provided by labview 8.2. I have hooked up all the requirements like format, and file path. But it keeps returning error 7 and says that my file path is incorrect. I’ve tried using a constant file path, ive tried creating the file before running the program, ive tried just writing the file straight to a disk in this case h:\test.asc but every time it comes back with error 7. I then went to a lab downstairs to see how they did it and the method I’m using it works down there but is exactly the same as mine upstairs. I’m a little confused by this one.
    Any pointers would be much appreciated.
    Dan

    Hi
    I apologise I didn’t specify I was only using a NI cRIO-9004 not realising you could get ones that had a USB port. I thought mine would behave in the same way as a DAQ device and write the file back onto the main computer hard drive. Is this not what happens if not how do you make it do that. The computer is a networked system with its own C:\ harddrive, but my personal space is on H:\ which must be like a pretend hard drive, or alternatively can you make the cRIO write it to a memory stick within a USB port of the programming PC itself. Or can you write onto memory of cRIO but then how do you download the data?
    Also I apologise that I posted the message twice only did cos I thought it might be in the wrong forum.
    Thanks
    Dan

  • Saving an array of sprite with filestream

    hi I am looking for a way to save an array of sprite on the user drive and then read this array...
    I saw method for saving text file. It quite simple... but it seems that saving an array is not very documented.
    Any help  tuto/ code wil be appriciated
    Thanks

    Hi so maybee it 's a better idea to convert spite to bitmapdata
    var mySprite:Sprite = new Sprite();
    var bData:BitmapData = new BitmapData(mySprite.width, mySprite.height, true);
    bData.draw(mySprite);
    var bmap:Bitmap = new Bitmap(bData);
    and then save the bitmapdata ?
    I will look at the bae 64 and join split method.

  • Saving cropped image to a file

    Hello,
    I have a big image, I've cropped it into small slices and saved them in a 2-Dimensional array as an "Image" object.
    Now I am trying to save each "Image" Object to an individual file.
    Now it's really weird because I can save the very first image element in array as a file, but the rest of the elements are BLACK!
    Below is the part of my code.
    ===========================================================
    for( int i=0; i < slicedImageArray.length; i++ )
    for( int j=0; j < slicedImageArray.length; j++)
    BufferedImage bi =
    new BufferedImage( slicedImageArray[i][j].getWidth(),
    slicedImageArray[i][j].getHeight(),
    BufferedImage.TYPE_INT_RGB );
    bi.getGraphics().drawImage( slicedImageArray[i][j].getSlice(),
    slicedImageArray[i][j].getXCoordinate(),
    slicedImageArray[i][j].getYCoordinate(), null);
    File sliceImage = new File("image" + i + j + ".jpg");
    try
    ImageIO.write(bi, "jpg", sliceImage);
    catch(Exception e)
    ====================================================================
    getSlice() method returns "Image object"
    PLEASE HELP!

    it is most likely because you are drawing the image off the range of the buffer:
    bi.getGraphics().drawImage( slicedImageArray[j].getSlice(),
    slicedImageArray[j].getXCoordinate(),
    slicedImageArray[j].getYCoordinate(), null);
    should be:
    bi.getGraphics().drawImage( slicedImageArray[j].getSlice(),
    0,
    0, null);

  • I saved my Form Central spreadsheet file once as a excel file but it will not allow me to save it a second time as an excel file.  It says that I cannot complete this action because the file me be open in another application, but it is not open in another

    I saved my Form Central spreadsheet file once as a excel file but Forms Central will not allow me to save the file a second time as an excel file.  I am informed that I cannot complete this action because the file me be open in another application, but it is not open in another application. What is the problem, and how do I solve the problem.  Thank you. Jeff

    First check the version of the document with Jongware's script "Identify.jsx" (ExtendScript/JavaScript).
    You can find it here:
    [Ann] Identify Your InDesign File
    If it is CS 5.5 or above, you need someone to open it in the version the script says and export an IDML representation from that. Another way would be to install a 30days version of CS6 or above (CC) and do it yourself.
    In regards of the script showing a result for InDesign files higher than CS6:
    CS7 = CC v9
    CS8 = CC v10 = CC-2014 or CC2014.1
    Uwe

  • I received pictures in a dozen emails and saved each picture into one file in .pages.  I did not import the photos before doing this and now iPhoto won't recognize the pictures because they are in a .pages file.  How do I get the pics to iPhoto?

    I received a dozen pictures in a few emails and I saved them all into one file in pages.  I just copied and pasted.  I do not have the originals any longer.  Iphoto will not permit me to import the pictures as it does not recognize a .pages file, nor can I simply click and drag from the pages document to iphoto nor from pages to the desktop to iphoto.  How can I save each picture I guess back into a jpeg and then import them into iphoto or have i lost them to a pages document forever?  This is urgent as I need the pictures made into a book on iphoto for work by Friday!!!  Please advise!  Thank you.

    Greetings,
    Locate the Pages document wherever it's located on your computer and click once on it to highlight it.
    Go to File > Duplicate to make a backup copy of the file.
    Click once again on the file to highlight it.
    Go to File >  Get Info
    In the "Name & Extension" category remove the ".pages" extension and put in ".zip".
    Close the info window and double-click the now renamed pages file (zip file now).It will decompress into a folder which contains all the base components including all the images you added.  These can be dragged onto the iPhoto icon to import them.
    Hope that helps.

  • While using a drop-down menu i.e. File, edit, image, or even when saving as and choosing the file type; the list appears and I am able to highlight what i want but cannot click on anything.

    While using a drop-down menu i.e. File, edit, image, or even when saving as and choosing the file type; the list appears and I am able to highlight what i want but cannot click on anything. This is becoming incredibly frustrating. It happens at random time and a restart of the computer is all that helps, then with out any notice it starts to do this again.  Mac Book Pro i7 2.2 16 GB 1333 Ram, (2) 450GB SSD both internal to machine. At this point I am losing file because I am unable to save in the file type I need. Does anyone out there know how to solve this issue?
    Thanks
    phil

    I haven't been unify photoshop much in the past month, but I did try your suggestion and it seemed to work for a while. Today when i went to save a document the same thing happened: click on file>save at this point I can not click on save even though it is highlighted. Tryed to use command s that brings up the save dialogue box, but when I try to change file type I again cannot select it from the drop down menu.

Maybe you are looking for

  • How do you invoke a simple jsp

    hi, i have a very simple jsp that displays the current time. it works on my tomcat server (installed on my computer). i purchased a domain from yahoo, say, www.beginer.com and uploaded the jsp file to the yahoo server. but when i referenced it with t

  • Epson cx4200

    I have an ibook G4 and am trying to run an epson cx 4200. When purchased it worked but had some missing file from printer download. contacted epson got that resolved but now the laptop doesnt recognize the printer and it wont let me add it at all. Th

  • Performance of MSEG table with MKPF and LIKP

    Hi, I am having an Issue with MSEG table. It has 6.5 lakh (= 650,000) records in Production System. Can anyone help me with its performance. The code I am using now is. SELECT MBLNR mjahr BLDAT BUDAT LE_VBELN FROM MKPF INTO TABLE IT_MKPF WHERE       

  • ViewObject populated programmatically

    Hello everybody I have an use case in which I have to create a VO which is populated automatically and is used in the application, but I can't create a DB table. I created it, wrote the filling code and accessed it from an application listener. The m

  • Can't install inspiration browser..

    i cannot install the inspiration browser.  it constantly saysin a small adobe air generated dialogue box "a download error occurred".  i have the latest adobe photoshop elements 10 and adobe air.  i am using google chrome browser as well...please hel