Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.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文件处理中重置文件指针_Java_File Handling - Fatal编程技术网

在JAVA文件处理中重置文件指针

在JAVA文件处理中重置文件指针,java,file-handling,Java,File Handling,大家好,我对java非常陌生,决定编写一个投票应用程序,并利用jdbc和文件处理。 我似乎无法将文件指针返回到文件的起始位置,并且在使用标记和重置时,它会返回一个名为“标记无效”的错误,即使它将标记支持返回为真。下面是我的代码片段 import java.sql.*; import java.util.*; import java.io.*; public class Voting_App { static Connection con; static Statement crs

大家好,我对java非常陌生,决定编写一个投票应用程序,并利用jdbc和文件处理。 我似乎无法将文件指针返回到文件的起始位置,并且在使用标记重置时,它会返回一个名为“标记无效”的错误,即使它将标记支持返回为真。下面是我的代码片段

import java.sql.*;
import java.util.*;
import java.io.*;
public class Voting_App {
    static Connection con;
    static Statement crsr;
    static BufferedReader br;
    static Writer fw;
    static File f;
    static FileInputStream fstream;
    static {
        try {
            fw= new FileWriter("posts.txt",true);
            fstream = new FileInputStream("posts.txt");
            br= new BufferedReader(new InputStreamReader(fstream));
            con=DriverManager.getConnection("jdbc:mysql://localhost:3306/vote","root","root");
            crsr= con.createStatement();
            f= new File("posts.txt");
        
        }
        catch (SQLException e) {
            e.printStackTrace();
        }
        catch (IOException i) {
            i.printStackTrace();
        }
    }
    static void disp_post() throws IOException {
        br.mark(0);
        String line;
        int i=1;
        if (f.length()!=0) {
            while ((line=br.readLine())!=null) {
                System.out.println(i+"."+line);
                i++;
            }
        br.reset();
        }
        else {
            System.out.println("There no posts currently");
        }
        
    }

这里重置文件指针,您只需使用
seek(0)
在你的代码中。 如果需要,还可以使用
getFilePointer()

另外,如果我没有使用其他良好的编码实践,请指出它们。谢谢你为什么你的投票应用程序中的一切都是静态的?我会用camel case来表示类,所以改用VotingApp,就像你的类中的所有其他类一样,你的缓冲区是空的,你用
mark(0)
标记什么,如果(f.length()!=0)不需要写
{
如果找不到该文件,它将抛出
NPE
i的目的是什么?为什么所有
可关闭的
类都是静态的?@RAZ_Muh_Taz我没有使用任何其他java文件或类,所以我没有找到创建对象的理由,因为我可以按原样编写static@emotionlessbananas怎么是空的?什么时候在我第一次调用函数时,它会打印所有帖子。如果可能的话,请更正格式。我尽了最大努力使用格式。如果格式不对,很抱歉。啊,是的,这实际上类似于Python的文件处理。我会尝试一下,尽快让你知道。是的,请尝试一下,我之前使用过它,所以我只是建议你这样做。它比谢谢你提出这个解决方案现在我可以安心睡觉了XD