Java,文本文件到字符串

Java,文本文件到字符串,java,Java,我正在读某个文本文件,当我找到某个单词时,我应该做另一个标准 在我的代码(如下)中,我得到一个错误, “类型不匹配:无法从int转换为String” 因此,Eclipse建议的解决方案是将变量(键)设置为整数,而不是字符串 这里怎么了 import java.io.File; import java.io.FileInputStream; import java.io.IOException; public class JNAL { public static void main(S

我正在读某个文本文件,当我找到某个单词时,我应该做另一个标准

在我的代码(如下)中,我得到一个错误, “类型不匹配:无法从int转换为String” 因此,Eclipse建议的解决方案是将变量(键)设置为整数,而不是字符串 这里怎么了

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class JNAL {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        File file = new File("C:/20180918.jrn");
        FileInputStream fis = null;

        try {
            fis = new FileInputStream(file);

            System.out.println("Total file size to read (in bytes) : "
                    + fis.available());

            int content;
            String key;
            /*
            while ((content = fis.read()) != -1) {
                // convert to char and display it
                System.out.print((char) content);
            }
            */
            while ((key = fis.read()) == "Cash") {
                // convert to char and display it
                System.out.print((String) key);
            }

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (fis != null)
                    fis.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }   
    }
}
试试这个:

BufferedReader bf = new BufferedReader(new InputStreamReader(fis));

while ((key = bf.readLine()).equals("Cash")) 
=
运算符比较对象的引用,因此您应该使用
equals()
方法比较
字符串
尝试以下操作:

BufferedReader bf = new BufferedReader(new InputStreamReader(fis));

while ((key = bf.readLine()).equals("Cash")) 

=
运算符比较对象的引用,因此您应该使用
equals()
方法比较
字符串

此代码中存在多个问题,但只是为了解决您的问题:

(key = fis.read()) == "Cash"
“现金”的类型为
字符串
。您无法将“primitive”
int
与“Object”
String
进行比较,因此eclipse建议将primitive
int
更改为Object type
String


关键是,这还不够。在比较对象时,不应使用
=
而应使用
equals

此代码中存在多个问题,但只是为了解决您的问题:

(key = fis.read()) == "Cash"
“现金”的类型为
字符串
。您无法将“primitive”
int
与“Object”
String
进行比较,因此eclipse建议将primitive
int
更改为Object type
String

关键是,这还不够。在比较对象时,不应使用
==
,而应使用
equals

试试这个

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

public class JavaTextFileToString {


        public static void main(String[] args) throws Exception {
            File file = new File("C:/20180918.jrn");

            BufferedReader br=new BufferedReader(new FileReader(file));
            String line=null;
            while((line=br.readLine())!=null){
                if(line.equals("Cash")) {
                    System.out.println(line);
                }

            }

            br.close();
        }
    }
试试这个

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

public class JavaTextFileToString {


        public static void main(String[] args) throws Exception {
            File file = new File("C:/20180918.jrn");

            BufferedReader br=new BufferedReader(new FileReader(file));
            String line=null;
            while((line=br.readLine())!=null){
                if(line.equals("Cash")) {
                    System.out.println(line);
                }

            }

            br.close();
        }
    }

它不起作用,因为您不应该使用
==
比较对象它不起作用,因为您不应该使用
==
比较对象
contains()
方法是检查字符串是否包含另一个子字符串的Java方法,所以它不能用于检查字符串的相等性。@Hülya you is right contains方法不应该使用,但我添加了它,因为我认为文件(.jrn)中的每一行可能也包含其他单词。如果OP想检查文件中的行是否只有“Cash”,那么正确的if条件应该是
if(line.equals(“Cash”){//do something}
@MONGWeee我不确定您会遇到什么错误。你能把截图贴上去吗。这可能是因为您的其他java类中存在编译时错误,并且由于它没有使用任何其他类,所以应该可以正常运行。当文件中的行包含“现金”时,您是否看到输出。你也可以在这里发布你的日志(.jrn)文件。这个文件可以正常工作,但它可以读取整行内容。我只需要从该行读取某个单词并将其放入字符串变量中。忽略我的第一条注释,我将其删除
contains()
方法是Java方法,用于检查字符串是否包含另一个子字符串,所以它不能用于检查字符串的相等性。@Hülya you is right contains方法不应该使用,但我添加了它,因为我认为文件(.jrn)中的每一行可能也包含其他单词。如果OP想检查文件中的行是否只有“Cash”,那么正确的if条件应该是
if(line.equals(“Cash”){//do something}
@MONGWeee我不确定您会遇到什么错误。你能把截图贴上去吗。这可能是因为您的其他java类中存在编译时错误,并且由于它没有使用任何其他类,所以应该可以正常运行。当文件中的行包含“现金”时,您是否看到输出。你也可以在这里发布你的日志(.jrn)文件。这个文件可以正常工作,但它可以读取整行内容。我只需要从该行中读取某个单词并将其放入字符串变量中。忽略我的第一条注释,我将其删除