[英]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.