Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.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的指针_Java - Fatal编程技术网

如何在java中重置FILEREADER的指针

如何在java中重置FILEREADER的指针,java,Java,有两种方法可以读取文本文件。第一种方式来自filereader,第二种方式是bufferedreader(它只在核心中使用filereader)。我试图从FILEREADER类实现一个文件读取器。这是我的实现 读一行—— 要读取行数-- 这是主要的方法-- publicstaticvoidmain(字符串[]args)引发IOException{ 字符串路径=System.getProperty(“user.dir”)+“\\src\\files\\lines.txt”; openFile(路径

有两种方法可以读取文本文件。第一种方式来自filereader,第二种方式是bufferedreader(它只在核心中使用filereader)。我试图从FILEREADER类实现一个文件读取器。这是我的实现

读一行——

要读取行数--

这是主要的方法--

publicstaticvoidmain(字符串[]args)引发IOException{
字符串路径=System.getProperty(“user.dir”)+“\\src\\files\\lines.txt”;
openFile(路径);
int total=读线(fr);
字符串[]str=新字符串[总计];
对于(int i=0;i
但问题是,当我第一次调用fr.readLines(Filereader fr)时,它将Filereader的指针指向文件的末尾,然后当我调用fr.readLine(Filereader fr)时,它将进入一个无限循环

我的问题是—— 如何重新设置filereader指向文件开头的指针


提前感谢。

您正在将文件读到文件的结尾,然后每次读到之后都返回文件的结尾


这里唯一的谜团是你为什么感到惊讶。你为什么要这么做
BufferedReader
已经存在,具有比您更好的
readLine()
方法,并且您不需要事先知道行数:如果确实需要同时将文件的所有行存储在内存中,请使用
集合将它们存储在内存中,这是另一个糟糕的做法。

您不需要两个单独的方法来计算行数和读取文件中的每个字符

使用java.io.BufferedReader同时执行读取行和计数行

问候
P

没有“Java中的FLIEREADER”这样的东西。你在说什么?你想做什么?您实现自己的filereader只是为了好玩,还是想实现一些特定的功能?或者“filereader”。对不起,是它的filereader。它的打字错误。“我纠正了这一点。”卡亚曼说,这是为了练习。实现自己的文件阅读器。
public static String readLine(FileReader fr) throws IOException {
    int i = fr.read();
    StringBuffer strb = new StringBuffer();
    while (i != 10 && i != -1) { // 10 for detecting new line and -1 for End of File
        strb.append(((char) i));
        i = fr.read();
    }
    String returnvalue = strb.toString();
    return returnvalue;
}
public static int readLines(FileReader fr) throws IOException {
    int numberOfLines = 0;
    while (!readLine(fr).isEmpty()) {
        numberOfLines++;
    }
    return numberOfLines;
}
public static void main(String[] args) throws IOException {
    String path = System.getProperty("user.dir") + "\\src\\files\\lines.txt";

    openFile(path);
    int total = readLines(fr);
    String[] str = new String[total];

    for (int i = 0; i < total; i++) {
        str[i] = readLine(fr);
    }

    for (String s : str)
        System.out.print(s);
}