如何在Java中读取.txt文件,并在每行包含整数,字符串和双精度时将每行放在数组中?每一行都有不同数量的单词/数字。
我是Java中的一个完整的菜鸟,很抱歉,如果这个问题有点愚蠢。
由于
答案 0 :(得分:11)
尝试没有人知道的Scanner
课程,但几乎可以用文字做任何事情。
要获取文件的阅读器,请使用
File file = new File ("...path...");
String encoding = "...."; // Encoding of your file
Reader reader = new BufferedReader (new InputStreamReader (
new FileInputStream (file), encoding));
... use reader ...
reader.close ();
你应该真正指定编码,否则当你遇到变音符号,Unicode等时会得到奇怪的结果。
答案 1 :(得分:6)
最简单的选择是简单地使用Apache Commons IO JAR并导入org.apache.commons.io.FileUtils类。使用这个类有很多种可能性,但最明显的可能如下;
List<String> lines = FileUtils.readLines(new File("untitled.txt"));
就这么简单。
“不要重新发明轮子。”
答案 2 :(得分:2)
你的问题不是很清楚,所以我只回答“阅读”部分:
List<String> lines = new ArrayList<String>();
BufferedReader br = new BufferedReader(new FileReader("fileName"));
String line = br.readLine();
while (line != null)
{
lines.add(line);
line = br.readLine();
}
答案 3 :(得分:1)
常用:
String line = null;
File file = new File( "readme.txt" );
FileReader fr = null;
try
{
fr = new FileReader( file );
}
catch (FileNotFoundException e)
{
System.out.println( "File doesn't exists" );
e.printStackTrace();
}
BufferedReader br = new BufferedReader( fr );
try
{
while( (line = br.readLine()) != null )
{
System.out.println( line );
}
答案 4 :(得分:0)
@ user248921首先,您可以将任何内容存储在字符串数组中,这样您就可以创建字符串数组并在数组中存储一行,并在需要时在代码中使用值。您可以使用以下代码在数组中存储异构(包含string,int,boolean等)行。
public class user {
public static void main(String x[]) throws IOException{
BufferedReader b=new BufferedReader(new FileReader("<path to file>"));
String[] user=new String[500];
String line="";
while ((line = b.readLine()) != null) {
user[i]=line;
System.out.println(user[1]);
i++;
}
}
}
答案 5 :(得分:0)
这是使用Streams和Collector的好方法。
List<String> myList;
try(BufferedReader reader = new BufferedReader(new FileReader("yourpath"))){
myList = reader.lines() // This will return a Stream<String>
.collect(Collectors.toList());
}catch(Exception e){
e.printStackTrace();
}
使用Streams时,您还有多种方法可以过滤,操纵或减少输入。
答案 6 :(得分:0)
在Java
中读取文件的最佳方法是打开文件,逐行读取并处理并关闭条带
// Open the file
FileInputStream fstream = new FileInputStream("textfile.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null) {
// Print the content on the console - do what you want to do
System.out.println (strLine);
}
//Close the input stream
fstream.close();
要了解有关如何使用Java读取文件的更多信息,check out the article。
答案 7 :(得分:0)
对于 Java 11,您可以使用下一个简短的方法:
Path path = Path.of("file.txt");
try (var reader = Files.newBufferedReader(path)) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
}
或者:
var path = Path.of("file.txt");
List<String> lines = Files.readAllLines(path);
lines.forEach(System.out::println);
或者:
Files.lines(Path.of("file.txt")).forEach(System.out::println);