Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6710645
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T08:02:46+00:00 2026-05-26T08:02:46+00:00

I have the following class, which performs some calculations to fill its static arrays.

  • 0

I have the following class, which performs some calculations to fill its static arrays.

public class Amount implements Serializable{
      private static final long serialVersionUID = 8141477444408242243L;
      public static Amount values1[][] = new Amount[10][30];
      public static Amount values2[][] = new Amount[10][30];
      public static Amount values3[][] = new Amount[10][30];

      double highestValue;
      double highestAmount;
      double lowestAmount;
      double lowestValue;

      ...
}

As the calculations take 20 minutes or so, I am looking to store the arrays on file and load the values when the program starts. I am attempting to use the java serialization method and have the following functions

public static void loadFile(Amount[][] arr, String filename){
    try {
        FileInputStream fis = new FileInputStream(filename);
        ObjectInputStream in = new ObjectInputStream(fis);
        arr = (Amount[][])in.readObject();
        in.close();
      }
      catch (Exception e) {
          System.out.println(e);
      }
}

public static void saveFile(Amount[][] arr, String filename){
     try {
         FileOutputStream fos = new FileOutputStream(filename);
         ObjectOutputStream out = new ObjectOutputStream(fos);
         out.writeObject(arr);
         out.flush();
         out.close();
      }
      catch (IOException e) {
          System.out.println(e); 
      }
}

which I call like this saveFile(values1, "valueOneSaveFile"); and loadFile(values1, "valueOneSaveFile");

I have run the program once, saving all the arrays to various files. The files have been created and look to be around the correct size. When I change my program to call the loadFile functions, the arrays do not appear to initialize correctly. I am getting null pointer exceptions when trying to read a value from the array (which appears to be empty after the load)

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T08:02:47+00:00Added an answer on May 26, 2026 at 8:02 am

    The problem is in your LoadFile method.
    Java passes parameters by value. In the case of objects a copy of the “pointer” is passed.
    When you update the array:

    arr = (Amount[][])in.readObject();
    

    You are not updating Amount.values1 array, instead the local arr variable points to a new array.

    You should change the method signature to:

    public static Amount[][] loadFile(String filename)
    

    And use it accordingly.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have the following class which uses BinaryReader internally and implements IDisposable. class DisposableClass
I have a class which has the following constructor public DelayCompositeDesigner(DelayComposite CompositeObject) { InitializeComponent();
I have a class which has the following fields: public Account account; public IEnumerable<PurchaseTransaction>
I have the following class which handles my user logged in / logged out
I have the following tricky problem: I have implemented a (rather complicated) class which
Let's say I have the following class hierarchy: TaskViewer inherits from ListViewer<Task> which in
I have a class which loads an xml file using the following: Path.Combine( AppDomain.CurrentDomain.BaseDirectory,
I have a DirectoryMonitor class which works on another thread. It has the following
Assume the following: we have class B, which is a private class nested inside
I have the following code in a c++ listener class (more or less), which

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.