如何使用扫描仪通过char读取输入文件?

时间:2012-11-13 22:33:23

标签: java input io

我必须使用Scanner,那么我可以使用nextChar()代替nextLine()方法吗?

谢谢!

4 个答案:

答案 0 :(得分:6)

如果 使用Scanner(如您在编辑中所述),请尝试以下操作:

myScanner.useDelimiter("(?<=.)");

现在myScanner应逐字逐句阅读。


您可能希望使用BufferedReader代替(如果可以) - 它有read方法可读取单个字符。例如,这将读取并打印文件的第一个字符:

BufferedReader br = new BufferedReader(new FileReader("somefile.txt"));
System.out.println((char)br.read());
br.close();

答案 1 :(得分:2)

使用String.toCharArray()将行拆分为字符。

答案 2 :(得分:2)

您可以转换为字符数组。

import java.io.*;
import java.util.Scanner;


public class ScanXan {
    public static void main(String[] args) throws IOException {
        Scanner s = null;
        try {
            s = new Scanner(new BufferedReader(new FileReader("yourFile.txt")));
            while (s.hasNext())
            {
               String str = s.next(); 
                char[] myChar = str.toCharArray();
                // do something
            }
        } finally {
            if (s != null) {
                s.close();
            }
        }
    }

答案 3 :(得分:0)

如果您承诺使用Scanner,则可以使用next(String pattern)

String character = scanner.next(".");

以上返回长度为1的String - 也就是说,你得到一个字符,但是作为一个字符串。