随机访问文件:阅读和写作

时间:2013-12-04 11:48:41

标签: java randomaccessfile

我基本上想要做的是我首先在文件test2.txt中写一个字符“123”。然后我读取它,将读取值存储在变量z(char数据类型)中,并将其与(if)部分中的“123”进行比较。但它返回NO MATCH ...即使变量z的值为“123”(System.out.println(z)在屏幕上打印123)。为什么会这样?我还检查了test2.txt文件。它包含123与123后面的小L(由于什么?unicode转换或什么?),我认为根本问题。请帮忙。提前谢谢。

源代码:

import java.io.*;

public class readWrite
{
    public static void main(String[]args)
    {
        RandomAccessFile file=null;
        try{
            file=new RandomAccessFile("test2.txt","rw");
            file.writeUTF("123");
            file.seek(0);
            String z=file.readUTF();
            if (z=="123")
            {
                System.out.println("MATCH");
            }
            else
            {
                System.out.println("NO MATCH");
            }
        }
        catch(IOException e){System.out.println(e);}
    }
}

1 个答案:

答案 0 :(得分:4)

z是一个字符串,应使用equal()方法进行比较

尝试这样做:

    if ("123".equals(z))
    {
        System.out.println("MATCH");
    }
    else
    {
        System.out.println("NO MATCH");
    }

此处提供更多信息来比较字符串:

How do I compare strings in Java?