如何将文件中的读取字节与单个字符串进行比较

时间:2018-02-05 18:39:48

标签: java

我有一个文本文件,我需要检查某个位置是否有"1""0"。请注意,它是我正在检查的数字的字符串表示。我试过这个:

RandomAccessFile dictionaryFile = new RandomAccessFile("path");
if("1".equals(new String(dictionaryFile.read()))){
    // do stuff
}

但结果是:

ir/PersistentHashedIndex.java:322: error: no suitable constructor found for String(int)
        while("1".equals(new String(dictionaryFile.read()))){
                         ^
constructor String.String(String) is not applicable
  (argument mismatch; int cannot be converted to String)
constructor String.String(char[]) is not applicable
  (argument mismatch; int cannot be converted to char[])
constructor String.String(byte[]) is not applicable
  (argument mismatch; int cannot be converted to byte[])
constructor String.String(StringBuffer) is not applicable
  (argument mismatch; int cannot be converted to StringBuffer)
constructor String.String(StringBuilder) is not applicable
  (argument mismatch; int cannot be converted to StringBuilder)

对我而言,String需要一个字节数组而不是一个字节来初始化一个字符串。但我只想给它一个数字。我怎样才能做到这一点?我可以将"1"转换为其字节表示吗?

编辑:抱歉比较错误,伙计们,我把它整理出来了。同样的问题仍然存在。

1 个答案:

答案 0 :(得分:1)

  

找不到适合String(int)的构造函数

这意味着您将整数值传递给 String 构造函数,而String没有任何构造函数接受int值。如果dictionaryFile.read()返回int。然后,你可以做

if (dictionaryFile.read() == 1)
{

<强> ==被修改==

如果你被迫比较为String,那么你只需要添加空字符串。

String temp = dictionaryFile.read()+"";

if ("1".equals(temp))
{