我创建了一个包含文件内容的数组。这个数组不是我的main方法,而是另一种方法。我无法弄清楚如何将包含文件内容的数组复制到我的main方法中的数组中,这样我就可以从那里操作/追加信息。我收到一个错误,说它无法找到变量dataPieces。有人可以帮我解决这个问题吗?这甚至是使用文件的最佳方式,这样我就可以向用户显示信息并让它们附加信息吗? 感谢
/**
Add in javadoc comments
*/
//import statements
import java.io.*;
import java.util.Scanner;
import java.util.ArrayList;
public class Try {
public static void main(String[] args){
String dataHolder[] = createFile();
System.out.println(dataHolder);
}
public static String[] createFile(){
//create file holding inventory information
String dataPieces[] = new String[10];
try{
PrintWriter outputFile = new PrintWriter("inventory.txt");
outputFile.println("3000.0");
outputFile.println("Lamps 15.3 400");
outputFile.println("Chairs 19.95 250");
outputFile.print("Desks 95.0 300");
int i =0;
outputFile.close();
File myFile = new File("inventory.txt");
Scanner inputFile = new Scanner(myFile);
while(inputFile.hasNext() && i<dataPieces.length){
dataPieces[i] = inputFile.next();
i++;
}
inputFile.close();
}
catch(IOException e){
System.out.println("File cannot be created."); //what to say???????????<<<<<<<<
}
return dataPieces;
}
}
答案 0 :(得分:0)
您的createFile()
方法已经返回一个数组,因此您的main方法应该只将该数组赋值给变量:
public static void main(String[] args){
String[] dataHolder = createFile();
...
}
没有理由多次拨打createFile()
。
答案 1 :(得分:0)
你有类似的东西:
for(int i=0; i<dataHolder.length; i++){
dataHolder[i] = createFile(dataPieces);
}
这里你试图创建inventory.txt文件10次,之后在循环中读取相同的10次,这将返回相同的数据。
所以你的方法createFile
返回一个数组,即dataPieces,你可以把你的for循环更改为:
dataHolder = createFile();
for(int i=0; i<dataHolder.length; i++){
...do something with dataPieces which is referred by dataHolder now.
}
通过只读取和写入文件一次,然后在另一种方法中进一步操作数组。