我是 Java 新手,正在尝试编写一个具有一个参数的程序,即文本文件的路径。该程序将找到文本文件并将其打印到屏幕上。最终,我将构建它以格式化给定的文本文件,然后将其打印到输出文件中,但我稍后会到达那里。
无论如何,我的程序总是抛出 IOException,我不知道为什么。给定参数 C:\JavaUtility\input.txt ,我在运行时收到“错误,无法读取文件”。我的代码位于下面。
import java.io.*;
public class utility {
public static void main(String[] path){
try{
FileReader fr = new FileReader(path[0]);
BufferedReader textReader = new BufferedReader(fr);
String aLine;
int numberOfLines = 0;
while ((aLine = textReader.readLine()) != null) {
numberOfLines++;
}
String[] textData = new String[numberOfLines];
for (int i=0;i < numberOfLines; i++){
textData[i] = textReader.readLine();
}
System.out.println(textData);
return;
}
catch(IOException e){
System.out.println("Error, could not read file");
}
}
}
[编辑] 感谢大家的帮助!因此,鉴于我的最终目标,我认为找到行数并存储在有限数组中仍然很有用。所以我最终写了两个类。首先,ReadFile.java
找到我想要的数据并处理大部分阅读。第二个FileData.java
调用 ReadFile 中的方法并打印出来。我已经将它们发布在下面,以防有人后来发现它们有用。
package textfiles;
import java.io.*;
public class ReadFile {
private String path;
public ReadFile(String file_path){
path = file_path;
}
int readLines() throws IOException{
FileReader file_to_read = new FileReader(path);
BufferedReader bf = new BufferedReader(file_to_read);
String aLine;
int numberOfLines = 0;
while ((aLine = bf.readLine()) != null){
numberOfLines++;
}
bf.close();
return numberOfLines;
}
public String[] OpenFile() throws IOException{
FileReader fr = new FileReader(path);
BufferedReader textReader = new BufferedReader(fr);
int numberOfLines = readLines();
String[] textData = new String[numberOfLines];
for(int i=0; i < numberOfLines; i++){
textData[i] = textReader.readLine();
}
textReader.close();
return textData;
}
}
package textfiles;
import java.io.IOException;
public class FileData {
public static void main(String[] args)throws IOException{
String file_name = args[0];
try{
ReadFile file = new ReadFile(file_name);
String[] aryLines = file.OpenFile();
for(int i=0; i < aryLines.length; i++){
System.out.println(aryLines[i]);
}
}
catch (IOException e){
System.out.println(e.getMessage());
}
}
}