如何在Java中使用Scanner读取文本文件中的特定字符?

时间:2012-07-21 03:02:45

标签: java file text char

基本上,我试图从顺序文本文件中读取4个字符。前两个是我将声明为变量的整数,接下来的两个是我需要分配给字符串或字符的字符,以便我可以稍后打印出来。

我知道如何获得整数,但我阅读角色的主要问题是我不确定如何,并且有可能某些角色可以是'',或者只是一个空格。我不知道我应该如何获得一个角色空间。我需要在程序后面使用这些字符来打印一些东西。

到目前为止,我几乎只做了像

这样的事情
Scanner s = new Scanner(new FileInputStream("textfile.txt"));

int a = s.nextInt();
int b = s.nextInt();

但是如果我尝试使用next,那么我会收到错误,特别是如果我想要获得一个''字符。有什么帮助吗?

3 个答案:

答案 0 :(得分:1)

我不知道是否有办法使用Scanner获取下一个角色,但如果我处于相同的情况,我将只使用nextLine()然后对我获得的字符串进行操作。您可以使用charAt()来获取特定字符。很像:

String str = s.nextLine();

char c1 = str.charAt(0); 

答案 1 :(得分:1)

尝试使用next()读取空格字符是行不通的,因为它是默认的分隔符。

您可以使用Scanner.useDelimiter()将分隔符更改为输入数据中不应出现的内容。

答案 2 :(得分:1)

由于您正在阅读4个连续字符,因此最好使用InputStreamReader。

InputStreamReader in = new InputStreamReader(new FileInputStream("textfile.txt")));

int a = in.read()
int b = in.read()
char c = (char)in.read()
char d = (char)in.read()

如果您只使用ASCII字符,则可以跳过InputStreamReader并直接使用FileInputStream。