在java中从文本文件读取输入

在java中从文本文件读取输入,java,Java,我想从java文本文件中读取输入。我有一个文本文件如下 5 4 abcd 6 8 defgh 10 我想将文件中的每个字符作为一个单独的实体读取,并分别处理该字符,就像将4存储在数据库中,将abcd作为b c d分开,然后分别处理它们一样 有哪些不同的方法可以做到这一点。最有效的方法是什么。如果使用Java 7,最简单的方法是: List<String> lines = Files.readAllLines(Paths.get("path to file"), StandardCh

我想从java文本文件中读取输入。我有一个文本文件如下

5
4
abcd
6
8
defgh
10
我想将文件中的每个字符作为一个单独的实体读取,并分别处理该字符,就像将4存储在数据库中,将abcd作为b c d分开,然后分别处理它们一样

有哪些不同的方法可以做到这一点。最有效的方法是什么。

如果使用Java 7,最简单的方法是:

List<String> lines = Files.readAllLines(Paths.get("path to file"), StandardCharsets.UTF_8);
List lines=Files.readAllLines(path.get(“文件路径”)、StandardCharsets.UTF_8);
如果您使用Java 7,它会将所有文件数据放入列表,其中列表项表示一行

List<String> lines = Files.readAllLines(Paths.get("path to file"), StandardCharsets.UTF_8);
List lines=Files.readAllLines(path.get(“文件路径”)、StandardCharsets.UTF_8);

它会将所有文件数据放入列表,其中列表项表示一行

如果您的文件有新行,请使用读取行

String sCurrentLine; 
br = new BufferedReader(new FileReader("C:\\testing.txt"));

while ((sCurrentLine = br.readLine()) != null) {
  System.out.println(sCurrentLine);
}

如果文件有新行,请使用“读取行”

String sCurrentLine; 
br = new BufferedReader(new FileReader("C:\\testing.txt"));

while ((sCurrentLine = br.readLine()) != null) {
  System.out.println(sCurrentLine);
}

如果要单独使用每个字符,则可以使用扫描仪:

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

public class SOExample {

  public static void main(String[] args) throws IOException {
    Scanner sc = new Scanner(new File("myfile.txt"));
    sc.useDelimiter("");
    while (sc.hasNext()) {
      String s = sc.next();
      if (s.trim().isEmpty()) {
        continue;
      }
      System.out.println(s);
    }
    sc.close();
  }

}
输出:

5
4
a
b
c
d
6
8
d
e
f
g
h
1
0

如果要单独使用每个字符,则可以使用扫描仪:

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

public class SOExample {

  public static void main(String[] args) throws IOException {
    Scanner sc = new Scanner(new File("myfile.txt"));
    sc.useDelimiter("");
    while (sc.hasNext()) {
      String s = sc.next();
      if (s.trim().isEmpty()) {
        continue;
      }
      System.out.println(s);
    }
    sc.close();
  }

}
输出:

5
4
a
b
c
d
6
8
d
e
f
g
h
1
0

您尝试过的一种方法是什么?我尝试使用FileReader类,然后FileReader fr=newFileReader(file);int r while((r=fr.read())=-1{Char c=(Char)r;System.out.Println(c);@RiteshSangwan请发布您的代码,这样我们可以告诉您失败的原因。您尝试过的一种方法是什么?我尝试使用FileReader类,然后FileReader fr=new FileReader(file);int r while((r=fr.read())=-1{Char c=(Char)r;System.out.Println(c);@RiteshSangwan请发布您的代码,这样我们就可以告诉您它失败的原因。我也考虑过这种方法,但如何将abcd与字符串单独分开。一旦将字符串放入变量中,您需要将其进一步分解为字符数组。使用tocharray();我也考虑过这种方法,但如何将abcd与字符串单独分开。变量中包含字符串后,需要将其进一步分解为字符数组。使用ToCharray();我尝试过,但是当我尝试打印行的内容时,每行后面都有一个空行。而且我无法获得第一行这是代码
列表行=文件。readAllLines(path.get(filePath),StandardCharsets.UTF_8);对于(int i=1;i@RiteshSangwan因为您从
i=1
运行循环,所以更改为
0
。关于空格:确保文件不包含空行。我尝试了它,但在我尝试打印行的内容时,每行后面都有一个空行。此外,我无法获得第一行这是代码
列表行=文件。readAllLines(path.get(文件路径),StandardCharsets.UTF_8);用于(inti=1;i@RiteshSangwan因为您从
i=1
运行循环,所以更改为
0
。关于空格:确保文件不包含空行