Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java中的扫描仪读取文本文件中的特定字符?_Java_File_Text_Char - Fatal编程技术网

如何使用Java中的扫描仪读取文本文件中的特定字符?

如何使用Java中的扫描仪读取文本文件中的特定字符?,java,file,text,char,Java,File,Text,Char,基本上,我试图从一个连续的文本文件中读取4个字符。前两个是我将声明给变量的int,下两个是我需要分配给字符串或字符的字符,以便以后打印出来 我知道如何获取INT,但我在读取字符时遇到的主要问题是我不确定如何获取INT,并且有可能其中的一个字符可以是“”,或者只是一个空格。我不知道我应该如何得到一个空间作为一个角色。我需要在程序后面使用这些字符来打印一些东西 到目前为止,我几乎只是做了一些类似的事情 Scanner s = new Scanner(new FileInputStream("text

基本上,我试图从一个连续的文本文件中读取4个字符。前两个是我将声明给变量的int,下两个是我需要分配给字符串或字符的字符,以便以后打印出来

我知道如何获取INT,但我在读取字符时遇到的主要问题是我不确定如何获取INT,并且有可能其中的一个字符可以是“”,或者只是一个空格。我不知道我应该如何得到一个空间作为一个角色。我需要在程序后面使用这些字符来打印一些东西

到目前为止,我几乎只是做了一些类似的事情

Scanner s = new Scanner(new FileInputStream("textfile.txt"));

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

但如果我尝试使用next,则会出现错误,特别是如果我尝试获取“”字符。有什么帮助吗?

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

String str = s.nextLine();

char c1 = str.charAt(0); 

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


您可以使用

将分隔符更改为输入数据中不应出现的内容,因为您正在读取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。

您可能必须使用较低级别的实用程序(
InputStreamReader
),因为
Scanner
是一个基于分隔符解析数据的高级实用程序。如果我没有弄错,
read()
读取单个字符。如果输入
5030XY
,会发生什么情况?您完全正确。这将读取5、0、3和0。但正如问题所说,格式是4个字符的顺序,其中2个是整数。我认为这意味着两个一位数的整数。否则就不可能知道整数的长度。