Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.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 FileReader未读取1stCharacter_Java_File Io - Fatal编程技术网

Java FileReader未读取1stCharacter

Java FileReader未读取1stCharacter,java,file-io,Java,File Io,朋友们好,, 我正在制作一个程序,其中一个txt文件正在读取并显示输出。为此,我正在使用FileReader和EclipseJuno的编辑器。但是,当我这样做时,我能够读取完整的txt文件,但不能读取第一个字符。例如,假设我们有txt文件,其中: 斯巴达克斯的自由是编写的,因此编译器必须在结果中显示整个字符串。相反,它显示了斯巴达克斯的自由,因此没有显示第一个角色。这是我的密码: package file; import java.io.File; import java.io.FileRea

朋友们好,, 我正在制作一个程序,其中一个txt文件正在读取并显示输出。为此,我正在使用FileReader和EclipseJuno的编辑器。但是,当我这样做时,我能够读取完整的txt文件,但不能读取第一个字符。例如,假设我们有txt文件,其中: 斯巴达克斯的自由是编写的,因此编译器必须在结果中显示整个字符串。相反,它显示了斯巴达克斯的自由,因此没有显示第一个角色。这是我的密码:

package file;

import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class O 
{
    public static void main(String[] args) throws IOException 
    {
        File f1=new File ("tj.txt");
        FileReader f2=new FileReader(f1);
        f2.read();
        System.out.println("Starting TO Read");
        long size=f1.length();
        char[] x=new char[(int)size];
        f2.read(x);
        f2.close();
        String s1=new String(x);
        System.out.println(s1);
    }
}

我的代码有什么问题,有人能帮我吗?

您正在读取第一个字符,并在此处忽略它

f2.read();
删除此行,它将根据您的需要工作

长度是以字节为单位的长度,而不是字符。在您的情况下可能是相同的,但是您应该读入字节[],并使用它来构建字符串

相反,我建议

FileInputStream fis = new FileInputStream("tj.txt");
byte[] bytes = new bytes[(int) fis.getChannel().size()];
fis.read(bytes);
fis.close();
String s = new String(bytes, "UTF-8"); // or your preferred encoding.

您正在读取第一个字符,并在此处忽略它

f2.read();
删除此行,它将根据您的需要工作

长度是以字节为单位的长度,而不是字符。在您的情况下可能是相同的,但是您应该读入字节[],并使用它来构建字符串

相反,我建议

FileInputStream fis = new FileInputStream("tj.txt");
byte[] bytes = new bytes[(int) fis.getChannel().size()];
fis.read(bytes);
fis.close();
String s = new String(bytes, "UTF-8"); // or your preferred encoding.
取下第一个

f2.read();

移除第一个

f2.read();

因为这行:

f2.read();
您已通过F。您需要此代码:

 public static void main(String[] args) throws IOException 
    {
        File f1=new File ("tj.txt");
        FileReader f2=new FileReader(f1);
        System.out.println("Starting TO Read");
        long size=f1.length();
        char[] x=new char[(int)size];
        f2.read(x);
        f2.close();
        String s1=new String(x);
        System.out.println(s1);

    }

因为这条线:

f2.read();
您已通过F。您需要此代码:

 public static void main(String[] args) throws IOException 
    {
        File f1=new File ("tj.txt");
        FileReader f2=new FileReader(f1);
        System.out.println("Starting TO Read");
        long size=f1.length();
        char[] x=new char[(int)size];
        f2.read(x);
        f2.close();
        String s1=new String(x);
        System.out.println(s1);

    }

使用第一个f2.read,您读取第一个字符,但不将其存储在任何位置。

使用第一个f2.read,您读取第一个字符,但不将其存储在任何位置。

通过在主菜单的第三行调用f2.read,您自己正在读取/跳过该字符。

您自己正在读取/跳过该字符打f2。在你的主文的第三行读。

@MarkrotVeel你说得对,OP可能没有得到我的建议。更新了我的答案。@markrottveel你是对的,OP可能没有得到我的建议。更新我的答案。长度是以字节为单位的大小,而不是字符长度是字节大小,而不是你可能会考虑接受帮助你最多的答案。你可能会考虑接受帮助你最多的答案。