簡體   English   中英

在另一個Java類中使用變量/數組。 合並簡單的Java文件?

[英]Use a variable/array from one java class, in another. Combine simple java files?

在開始之前,請為我對Java的基本理解道歉,因為我幾乎可以肯定,對於大多數程序員而言,這都是一個簡單的問題。

基本上,我有兩個Java文件:第一個列出指定目錄中的所有文本文件,第二個讀取指定的文本文件並將其打印出來。

我試圖弄清楚如何使用ListFiles的輸出(如下所示-在dir中給出所有txt文件)-我假設它是底部System.out.println的變量“ files”,然后將其傳遞給Java文件“ FileData”(下面的第二個示例)以有效讀取特定目錄中的所有txt文件。

制作使用這兩種方法的新Java文件可能會更容易些? 任何方向將不勝感激,謝謝。

import java.io.File;

public class ListFiles 
{

// bad attempt at OOP lol, f goes nowhere
public ListFiles(String f) {
}

public static void main(String[] args) 
{

  // Directory path here
  String path = "C:/WORKING_DIR_WITH_TXT_FILE"; 

  String files;
  File folder = new File(path);
  File[] listOfFiles = folder.listFiles(); 

  for (int i = 0; i < listOfFiles.length; i++) 
  {

   if (listOfFiles[i].isFile()) 
   {
   files = listOfFiles[i].getName();
       if (files.endsWith(".txt") || files.endsWith(".TXT"))
       {
          System.out.println(files);
       }
     }
  }
}
}

這是第二個讀取TXT文件的Java文件

import java.io.IOException;

public class FileData
{

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

   String file_name = "C:/WORKING_DIR_WITH_TXT_FILE";
     // "C:/directory/*.txt"???;

   try {
     ReadFile file = new ReadFile(file_name);
     String[] aryLines = file.OpenFile();

     int i;
     for (i=0; i < aryLines.length; i++) {
       System.out.println(aryLines[i]);
     }
   }

   catch (IOException e) {
     System.out.println( e.getMessage() );
   }
 }
}

我的理解是,您當前可以成功地將這兩個類作為單獨的程序運行,但是您希望將ListFiles用作主程序,並希望它調用FileData來打印文件的內容。

在實際的Java應用程序中,大多數類沒有main方法,因為它們並非旨在由用戶直接從命令行調用。 就您而言, ListFiles應該具有main方法,以便您可以運行它,但是FileData應該具有可以從ListFiles調用的方法。

基本上,您可以將FileData.main()的簽名更改為:

public static void showFile(String file_name)

它的身體將保持不變。

然后,在ListFiles當前顯示文件名的位置,您將/另外具有:

FileList.showFile( files );

這將調用FileList的方法,並將文件名作為參數傳遞給它。

您必須在ListFiles程序中序列化 “文件”對象,並在FileData類中反序列化

編輯:根據Dave Costa的評論,如果您不知道序列化和反序列化,則替代方法是:

將ListFiles中的main方法更改為getListOfFiles()

並在FileData類中對其進行訪問,以ListFiles.getListOfFiles()獲取文件列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM