我遇到了以下问题,
我有两个类,第一个是readFromFile,第二个类是newClass
readFromFile .java -
的NewClass 的.java
请帮助
import java.util.Scanner;
import java.io.*;
public class readFromFile
{
static String[] dArray = new String [30];
public static void main (String[] args) throws IOException
{
String part;
Scanner fileScan, partScan;
int i = 0;
int x = 0;
fileScan = new Scanner (new File("C:\\stuff.txt"));
// Read and process each line of the file
while (fileScan.hasNext())
{
part = fileScan.nextLine();
partScan = new Scanner (part);
partScan.useDelimiter(":");
while ( partScan.hasNext()){
dArray[i] = partScan.next();
i++;
}
}
for (x = 0;x<i;x++)
{ System.out.println(dArray[x]);
}
}
public String[] getArray()
{
return dArray;
}}
newClass.java
public class newClass {
readFromFile results = new readFromFile();// creating object from class readFromFile
public void copyArray() {
String[] dArray = results.getArray(); // Trying to return the values of String [] dArray from rr classs
//Method getArray in rr class is
// public String[] getArray()
// { return dArray; }
String[] arrayCopy = new String[dArray.length];
System.arraycopy(dArray, 0, arrayCopy, 0, dArray.length);
for (int i = 0; i < arrayCopy.length; i++)
System.out.println(arrayCopy[i]);
}
public static void main(String[] args) {
newClass.copyArray();
}
}
答案 0 :(得分:1)
您的结果生成在readFromFile.main()中,但您希望在readFromFile()中调用它。你需要为readFromFile创建一个构造函数,并在main方法中调用它。
答案 1 :(得分:0)
问题是这两个类都有一个主方法。只有您打算运行的类应该有一个main方法,其他类只需要构造函数。假设你想要运行一个未示出的类,它将被写成这样。
public class ThirdClass{
public static void main(String[] args) {
readFromFile reader = new ReadFromFile();
newClass copy = new newClass();
reader.readFromFile();
String[] strings = reader.getArray();
copy.copyArray(strings)
}
为此,您需要将所有代码放在readFromFile的主体中,并将其放在名为“readFromFile”的方法中。你需要一个newClass中的方法,它接受一个字符串数组作为参数。或者是接受字符串数组的构造函数。
确保它们都没有主要方法,否则无效。
答案 2 :(得分:0)
dArray
变量public static void main(String[] args) throws IOException
改为public readFromFile() throws IOException
。保持代码内容相同。newClass.copyArray();
行更改为(new newClass()).copyArray();
readFromFile results = new readFromFile();
中的行移至public void copyArray()
方法。public void copyArray()
改为public void copyArray() throws IOException
(new newClass()).copyArray();
更改为try { (new newClass()).copyArray(); } catch (IOException e) { e.printStackTrace(); }
以上内容应该让您的工作正常工作,但一个友好的注意事项是试验代码(一旦工作),因为它是一个很好的例子来理解如何使用static
关键字,如何处理或抛出异常,以及如何使用IO。 ;)