我创建了一个类,该类具有读取和写入文件的功能,甚至可以解析文件中的内容。但是,当我运行测试时,我无法读取该文件。这是我所拥有的内容的摘要,如果还不够,我可以发布其余我需要帮助的内容。
这是我的主要表情:
public static void main(String args[]) throws IOException {
String fileLocation = File.separator + "Users" + File.separator + "Desktop" + File.separator + "test.txt";
File file = new File(fileLocation);
DataStorage data = new DataStorage(fileLocation);
data.read();
}
这是我的读取方法的样子:
public File file;
public DataStorage(String filePath) {
setFile(filePath);
}
public Data read() throws IOException {
Data db = new Data();
Scanner scan = new Scanner(file);
Person person;
//check if file has data print selected data
while(scan.hasNextLine()) {
person = parsePerson(scan.nextLine());
db.add(person);
}
if(scan != null) {
// close() may throw IOException if fails;
scan.close();
}
return db;
}
答案 0 :(得分:-1)
您需要将文件对象作为参数传递,而不是filePath,并且在主方法“ C DRIVE IF WINDOWS”中发送的路径不正确,否则以\开头,即Mac的File.separator
public class Stackex1 {
public static void main(String args[]) throws IOException {
String fileLocation = "C:"+ File.separator + "Users" + File.separator + "USERNAMEGOESHERE" + File.separator + "Desktop" + File.separator + "test.txt";
System.out.println(fileLocation);
File file = new File(fileLocation);
DataStorage data = new DataStorage(file);
data.read();
}
}
class DataStorage {
public File file;
public DataStorage(File file) {
setFile(file);
}
public void setFile(File file) {
this.file = file;
}
.... //Remaining code goes here