如何将文本的内容作为对象打印到控制台



假设我在一个文本文件中有这些单词

<标题>Dictionary.txt h1> 何使每个单词成为不同的对象并在控制台上打印它们?

您可以简单地使用Scanner.nextLine();函数。下面的代码可以帮助

也导入库

import java.util.Scanner;
import java.io.File;
import java.util.Arrays;

使用以下代码:-

String []words = new String[1];
try{
File file = new File("/path/to/Dictionary.txt");
Scanner scan = new Scanner(file);
int i=0;
while(scan.hasNextLine()){
words[i]=scan.nextLine();
i++;
words = Arrays.copyOf(words,words.legnth+1); // Increasing legnth of array with 1
}
}
catch(Exception e){
System.out.println(e);
}

你必须去研究Scanner

这是一个非常简单的解决方案,使用Files:

package org.kodejava.io;
import java.net.URI;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.util.Objects;
public class ReadFileAsListDemo {
public static void main(String[] args) {
ReadFileAsListDemo demo = new ReadFileAsListDemo();
demo.readFileAsList();
}
private void readFileAsList() {
String fileName = "Dictionary.txt";
try {
URI uri = Objects.requireNonNull(this.getClass().getResource(fileName)).toURI();
List<String> lines = Files.readAllLines(Paths.get(uri),
Charset.defaultCharset());
for (String line : lines) {
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

来源:https://kodejava.org/how-do-i-read-all-lines-from-a-file/

这是另一个使用缓冲读取器的简洁解决方案:

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 * BufferedReader and Scanner can be used to read
line by line from any File or
 * console in Java.
 * This Java program
demonstrate line by line reading using BufferedReader in Java
 *
 * @author Javin Paul
 */
public class BufferedReaderExample {  
public static void main(String args[]) {

//reading file line by line in Java using BufferedReader      
FileInputStream fis = null;
BufferedReader reader = null;

try {
fis = new FileInputStream("C:/sample.txt");
reader = new BufferedReader(new InputStreamReader(fis));

System.out.println("Reading
File line by line using BufferedReader");

String line = reader.readLine();
while(line != null){
System.out.println(line);
line = reader.readLine();
}          

} catch (FileNotFoundException ex) {
Logger.getLogger(BufferedReaderExample.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(BufferedReaderExample.class.getName()).log(Level.SEVERE, null, ex);

} finally {
try {
reader.close();
fis.close();
} catch (IOException ex) {
Logger.getLogger(BufferedReaderExample.class.getName()).log(Level.SEVERE, null, ex);
}
}
}

来源:https://javarevisited.blogspot.com/2012/07/read-file-line-by-line-java-example-scanner.html axzz7lrQcYlyy

这些都是很好的答案。OP没有说明他们需要什么版本的Java,但是在现代Java中,我只使用:

import java.nio.file.*;
public class x {
public static void main(String[] args) throws java.io.IOException {
Files.lines(Path.of("/path/to/Dictionary.txt")).forEach(System.out::println);
}
}

最新更新