title: Program is delayed in writing to a .txt file?
body: <p>So, I've searched around stackoverflow for a bit, but I can't seem to find an answer to this issue.</p>
  
  <p>My current homework for my CS class involves reading from a file of 5000 random numbers and doing various things with the data, like putting it into an array, seeing how many times a number occurs, and finding what the longest increasing sequence is. I've got all that done just fine.</p>
  
  <p>In addition to this, I am (for myself) adding in a method that will allow me to overwrite the file and create 5000 new random numbers to make sure my code works with multiple different test cases.</p>
  
  <p>The method works for the most part, however after I call it it doesn't seem to "activate" until after the rest of the program finishes. If I run it and tell it to change the numbers, I have to run it again to actually see the changed values in the program. Is there a way to fix this?</p>
  
  <p>Current output showing the delay between changing the data:</p>
  
  <p>Not trying to change the data here- control case.</p>
  
  <pre><code>elkshadow5$ ./CompileAndRun.sh
  
  Create a new set of numbers? Y for yes. n
  What number are you looking for?    66
  66 was found 1 times.
  The longest sequence is [606, 3170, 4469, 4801, 5400, 8014]
  It is 6 numbers long.
  </code></pre>
  
  <p>The numbers should change here but they don't. </p>
  
  <pre><code>elkshadow5$ ./CompileAndRun.sh
  
  Create a new set of numbers? Y for yes. y
  What number are you looking for?    66
  66 was found 1 times.
  The longest sequence is [606, 3170, 4469, 4801, 5400, 8014]
  It is 6 numbers long.
  </code></pre>
  
  <p><em>Now</em> the data shows that it's changed, the run after the data should have been changed.</p>
  
  <pre><code>elkshadow5$ ./CompileAndRun.sh
  
  Create a new set of numbers? Y for yes. n
  What number are you looking for?    1
  1 was found 3 times.
  The longest sequence is [1155, 1501, 4121, 5383, 6000]
  It is 5 numbers long.
  </code></pre>
  
  <p>My code:</p>
  
  <pre><code>import java.io.FileNotFoundException;
  import java.io.IOException;
  import java.io.PrintWriter;
  import java.util.Scanner;
  
  public class jeftsdHW2 {
  static Scanner input = new Scanner(System.in);
  
  public static void main(String args[]) throws Exception {
      jeftsdHW2 random = new jeftsdHW2();
      int[] data;
      data = new int[5000];
      random.readDataFromFile(data);
      random.overwriteRandNums();
  }
  public int countingOccurrences(int find, int[] array) {
      int count = 0;
      for (int i : array) {
          if (i == find) {
              count++;
          }
      }
      return count;
  }
  public int[] longestSequence(int[] array) {
      int[] sequence;
      return sequence;
  }
  public void overwriteRandNums() throws Exception {
      System.out.print("Create a new set of numbers? Y for yes.\t");
      String answer = input.next();
      char yesOrNo = answer.charAt(0);
      if (yesOrNo == 'Y' || yesOrNo == 'y') {
          writeDataToFile();
      }
  }
  public void readDataFromFile(int[] data) throws Exception {
      try {
          java.io.File infile = new java.io.File("5000RandomNumbers.txt");
          Scanner readFile = new Scanner(infile);
  
          for (int i = 0; i &lt; data.length; i++) {
              data[i] = readFile.nextInt();
          }
          readFile.close();
      } catch (FileNotFoundException e) {
          System.out.println("Please make sure the file \"5000RandomNumbers.txt\" is in the correct directory before trying to run this.");
          System.out.println("Thank you.");
          System.exit(1);
      }
  }
  public void writeDataToFile() throws Exception {
      int j;
      StringBuilder theNumbers = new StringBuilder();
      try {
          PrintWriter writer = new PrintWriter("5000RandomNumbers.txt", "UTF-8");
          for (int i = 0; i &lt; 5000; i++) {
              if (i &gt; 1 &amp;&amp; i % 10 == 0) {
                  theNumbers.append("\n");
              }
              j = (int) (9999 * Math.random());
              if (j &lt; 1000) {
                  theNumbers.append(j + "\t\t");
              } else {
                  theNumbers.append(j + "\t");
              }
          }
          writer.print(theNumbers);
          writer.flush();
          writer.close();
      } catch (IOException e) {
          System.out.println("error");
      }
  }
  }
  </code></pre>