基本上我要做的是从文本文件中存储整行并将其存储到一个字符串中。该行是班级部门,班级编号和正在学习的学期。例如,“CSCE 155A - 2011年秋季”。我想将所有这些放入一个名为“description”的字符串中。
className = scanner.next();
System.out.println(className);
这行代码只输出第一部分CSCE。有没有办法存储整条生产线?我唯一能想到的是几个scanner.next()
和print语句,但这看起来很混乱
答案 0 :(得分:0)
来自String Scanner.next()的文档:
查找并返回此扫描仪的下一个完整令牌。一个 完整标记之前和之后是匹配的输入 分隔符模式。此方法可能在等待输入时阻塞 扫描,即使之前的hasNext()调用返回true。
因为您的示例行是:“CSCE 155A - 2011年秋季”,所以next()将停在第一个空格。
您需要的是Scanner.nextLine():
className = scanner.nextLine();
答案 1 :(得分:0)
如果您使用的是Java 7,可能需要使用NIO.2,例如:
public static void main(String[] args) throws IOException {
// The file to read
File file = new File("test.csv");
// The charset for read the file
Charset cs = StandardCharsets.UTF_8;
// Read all lines
List<String> lines = Files.readAllLines(file.toPath(), cs);
for (String line : lines) {
System.out.println(line);
}
// Read line by line
try (BufferedReader reader = Files.newBufferedReader(file.toPath(), cs)) {
for (String line; (line = reader.readLine()) != null;) {
System.out.println(line);
}
}
}