Java 如何从文本文件中读取字符串直到某个字符,在控制台中打印它们,然后继续?
我有个问题。我有一个文本文件,其中包含一些名称和编号,如下所示: 奶酪;10;十二, 波拉特;99;五十五 我想从文件中读取字符和整数,直到“;”符号,println,然后继续,读取下一个,println,等等,如下所示: Cheese->println,10->println,99->println,然后转到下一行并继续 我尝试使用:Java 如何从文本文件中读取字符串直到某个字符,在控制台中打印它们,然后继续?,java,Java,我有个问题。我有一个文本文件,其中包含一些名称和编号,如下所示: 奶酪;10;十二, 波拉特;99;五十五 我想从文件中读取字符和整数,直到“;”符号,println,然后继续,读取下一个,println,等等,如下所示: Cheese->println,10->println,99->println,然后转到下一行并继续 我尝试使用: BufferedReader flux_in = new BufferedReader ( new Input
BufferedReader flux_in = new BufferedReader (
new InputStreamReader (
new FileInputStream ("D:\\test.txt")));
while ((line = flux_in.readLine())!=null &&
line.contains(terminator)==true)
{
text = line;
System.out.println(String.valueOf(text));
}
但它读的是整行,并没有停在“;”符号上。将“contains”条件设置为false根本不会读取该行
编辑:部分解决,我成功地编写了以下代码:
StringBuilder sb = new StringBuilder();
// while ((line = flux_in.readLine())!=null)
int c;
String terminator_char = ";";
while((c = flux_in.read()) != -1) {
{
char character = (char) c;
if (String.valueOf(character).contains(terminator_char)==false)
{
// System.out.println(String.valueOf(character) + " : Char");
sb.append(character);
}
else
{
continue;
}
}
}
System.out.println(String.valueOf(sb) );
它返回一个新字符串,该字符串由读取字符串中的字符组成,但不带“;”。仍然需要一种方法使其在第一个“;”上停止,在字符串中打印并继续
我没有测试,因为我在打电话。希望这对您有所帮助感谢Stefan Vasilica提供的IDEA:
Scanner scan = new Scanner(new File("D:\\testfile.txt"));
// Printing the delimiter used
scan.useDelimiter(";");
System.out.println("Delimiter:" + scan.delimiter());
// Printing the tokenized Strings
while (scan.hasNext()) {
System.out.println(scan.next());
}
// closing the scanner stream
scan.close();
谢谢,我也在想同样的事情,一个字符一个字符地读字符串,停在“;”,构建一个新字符串,然后打印它,继续等等。我不知道stringbuilder类,应该会有帮助。如果你解决了问题,请告诉我,然后将问题标记为已解决。部分解决。我设法在第一篇文章中编写了代码(无法在评论中正确格式化代码,因此我编辑了第一篇文章)。我返回一行由文本组成的字符串,但不带“;”符号。使用Scanner=new Scanner(“D:\\test.txt”)代替BufferedReader;并使用scanner.next()读取下一个字符。scanner.nextLine()一直读取到lineYup的末尾,这应该根据以下文档解决它:。看来这正是我需要的。我会在5分钟内报告,非常感谢所有的快速回复。