Skip to Main Content

New to Java

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Using multiple classes and creating an Object of a class and calling its method in a different class

2801625May 15 2015 — edited May 21 2015

In the process of creating a new class, I need to move my main method from the class SaveDate to the class DynamicTest. Below I have listed the code of both classes.The objective is to be able to run my program from the DynamicTest Class. I need help understanding the process of moving my main method to a different class and creating an Object of a class and calling its method.

public class SaveData {

  private static final Map<String, Object> myCachedTreeMap = new TreeMap<String, Object>();

   public static final List<String> getLines(final String resourceParam, final Charset charset) throws IOException{

  System.out.println("Please get: "+resourceParam);

  if (myCachedTreeMap.containsKey(resourceParam) ) {

  // Use the cached file, to prevent an additional read.

  System.out.println("Found in memory : "+resourceParam);

  }

  else {

  // Load the file from disk

  System.out.println("Not Found in memory : "+resourceParam);

  }

  return null;

 

  }

  public static void main(String[] args) throws IOException {

  String target_dir = "C:\\myfiles\\config\\en";

  String output = "C:\\myfiles\\config\\en\\output.txt";

  File dir = new File(target_dir);

  File[] files = dir.listFiles();

  if (files == null || files.length < 1) {

  System.out.println("File list is empty...");

  return;

  }

  // open the Printwriter

  PrintWriter outputStream = new PrintWriter(output);

  try {

  for (File textFile : files) {

  if (textFile.isFile() && textFile.getName().endsWith(".txt")) {

  readFromDisk(textFile);

  }

  }

  }

  finally {

  outputStream.close();

  }

  String fileNameFromCache = "en_synonyms.txt";

  Object Sheet1 = myCachedTreeMap.get(fileNameFromCache);

  System.out.println(fileNameFromCache + " : \n" + Sheet1);

  }

  @SuppressWarnings("resource")

  private static void readFromDisk(File textFile) throws FileNotFoundException, IOException {

  BufferedReader inputStream;

  inputStream = null;

  String content = "";

  try {

  inputStream = new BufferedReader(new FileReader(textFile));

  content = readFile(textFile);

  System.out.println("Bytes Read = "+content.length());

  // Save contents

  FileContentsObject Sheet1 = new FileContentsObject(System.currentTimeMillis(),

  textFile.lastModified(), content,

  textFile.getName(),

  getLines(null, null));

  // add to map

  myCachedTreeMap.put(textFile.getName(), Sheet1);

  }

  finally {

  if (inputStream != null) {

  inputStream.close();

  }

  }

  }

  private static String readFile(File f) throws FileNotFoundException, IOException, UnsupportedEncodingException  {

  StringBuilder text = new StringBuilder(1024);

  int read, N = 1024 * 1024;

  char[] buffer = new char[N];

  BufferedReader br = null;

  try {

  br = new BufferedReader(

  new InputStreamReader(

                 new FileInputStream(f), "UTF8"));

  while(true) {

  read = br.read(buffer, 0, N);

  if (read > 0)

  text.append(new String(buffer, 0, read));

  if(read < N) {

  break;

  }

  }

  }

  finally {

  if (br != null)

  br.close();

  }

  return text.toString();

  }

  private static final class FileContentsObject {

  private long cachedTime; // currentTime

  private long lastModifiedTimestamp;

  private String contents;

  List<String> lines;

  private String fileName;

  public FileContentsObject(long cachedTime, long lastModifiedTimestamp,

  String contents, String fileName, List<String> lines) {

  this.cachedTime = cachedTime;

  this.lastModifiedTimestamp = lastModifiedTimestamp;

  this.contents = contents;

  this.fileName = fileName;

  this.lines = lines;

  SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yy HH:mm:ss");

  System.out.println("Current Time & Date:" + sdf.format(cachedTime));

  System.out.println("Last Modified Time Stamp:"

  + sdf.format(lastModifiedTimestamp));

  }

  /**

  *

  * @return The lines from the file

  */

  List<String> getLines() {

  return this.lines;

  }

  public String toString() {

  return "Sheet1{" + "fileName='" + fileName + '\'' + ", contents='"

  + contents + '\'' + ", lastModifiedTimestamp="

  + lastModifiedTimestamp + ", CurrentTime&Date="

  + cachedTime + '}';

 

  }

  }

}

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

public class DynamicTest {

  public static void main(String[] args) {

  Charset charset = Charset.forName("UTF-8");

  

  try {

  List<String> lines = CacheData.getLines("en_synonyms", charset) ;

  if (lines != null) {

  System.out.println("Number of Lines: "+lines.size());

  for (String line:lines) {

  System.out.println("DynamicTest:: "+line);

  }

  }

  } catch (IOException e) {

  e.printStackTrace();

  }

  

  try {

  List<String> lines = CacheData.getLines("en_stopwords", charset) ;

  if (lines != null) {

  System.out.println("Number of Lines: "+lines.size());

  for (String line:lines) {

  System.out.println("DynamicTest:: "+line);

  }

  }

  } catch (IOException e) {

  e.printStackTrace();

  }

  }

}

This post has been answered by unknown-7404 on May 15 2015
Jump to Answer

Comments

Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Jun 18 2015
Added on May 15 2015
3 comments
1,173 views