Java,文本文件到字符串

时间:2018-10-23 15:51:50

标签: java

我正在尝试读取某些文本文件,当我发现某些单词时,我应该执行另一个条件,

在我的代码中(将在后面),出现错误, “ 类型不匹配:无法从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();
            }
        }   
    }
}

3 个答案:

答案 0 :(得分:2)

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

(key = fis.read()) == "Cash"

“现金”的类型为String。您无法将“原始” int与“对象” String进行比较,因此蚀建议将原始int更改为对象类型String

关键是,即使那还不够。比较对象时,请勿使用==,而应使用equals

答案 1 :(得分:2)

尝试

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();
        }
    }

答案 2 :(得分:0)

尝试一下:

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

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

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