当前位置: 首页 > 面试题库 >

Java-在JAR文件中写入txt

陆城
2023-03-14
问题内容

如何从JAR
Java编译项目中写入.txt文件?

当我运行项目时,它不会给出错误,但不会将其写入JAR文件中。

我使用以下方法制作JAR文件:

netbeans clean /build tool

码:

public class FileIO   {
    private File file;
    private Scanner filescScanner, lineScanner;
    private PrintWriter fileWriter;
    private String[][] data;

    public FileIO () {
        data = new String[100][2];
    }

    public String[][] getLineScores(){
        return this.loadHighscores(this.getClass().getResourceAsStream("LineHighscores.txt"));
    }

    public String[][] getTimeScores(){
        return this.loadHighscores(this.getClass().getResourceAsStream("TimeHighscores.txt"));
    }

    public void setLineScores( String name,String lines ){
        boolean found= false;
        data = this.getLineScores();
        for(int i = 0; i<data.length && !found ; i++){
            if(data[i][0] == null || "Niemand".equals(data[i][0])){
                data[i][0]=name;
                data[i][1]=lines;
                found=true;
            }
        }
        this.saveHighscores(this.getClass().getResource("LineHighscores.txt"),data);
    }

    public void setTimeScores(String time, String name){
        boolean found= false;
        data = this.getLineScores();
        for(int i = 0; i<data.length && !found ; i++){
            if(data[i][0] == null || "Niemand".equals(data[i][0])){
                data[i][0]=name;
                data[i][1]=time;
                found=true;
            }

        }
        this.saveHighscores(this.getClass().getResource("TimeHighscores.txt"),data);
    }

    private String[][] loadHighscores( InputStream resourceStream){
        int x=0;
        String test = "";
        try{
            filescScanner = new Scanner(resourceStream);
        }
        catch(Exception ioe){
            System.err.println(ioe);
        }

        if (filescScanner.hasNext()){
            while(filescScanner.hasNextLine()&& x<100) {
                lineScanner = new Scanner(filescScanner.nextLine());
                lineScanner.useDelimiter("-/-");

                data[x][0]=lineScanner.next();//name
                data[x][1]=lineScanner.next();//data
                x++;
            }
            lineScanner.close();
            filescScanner.close();
        }
        else{
            data[0][0] = "Niemand";
            data[0][1] = "0";
        }
        return data;
    }

    private void saveHighscores( URL resourceStream, String[][] data){
        int x=0;
        try {
            file = new File(resourceStream.toURI());
        } catch (URISyntaxException ex) {
            Logger.getLogger(FileIO.class.getName()).log(Level.SEVERE, null, ex);
        }

        try {
            fileWriter = new PrintWriter(file);
        } catch (FileNotFoundException ex) {
            Logger.getLogger(FileIO.class.getName()).log(Level.SEVERE, null, ex);
        }
        if(data.length>x){
            while(data.length>x && data[x][0] != null ){
                fileWriter.println(data[x][0]+"-/-"+data[x][1]);
                x++;
            }
            fileWriter.close();
        }
    }

    public static void main(String[] args){
        FileIO file = new FileIO();
        file.setLineScores("55555555", "KoenKevin");
    }
}

问题答案:

当您尝试在jar中写入文本文件时,java无法识别文本文件的绝对路径。

它会像

C:User/adom/documents/jarName.jar!/fileName.txt

这不是绝对路径,因此无法写入文件。尝试从外部写入文件。



 类似资料:
  • 问题内容: 我正在使用此方法从JAR中的文本文件读取并正确工作。 现在,我要写入文件(从文件删除一行,通过从第一个文件写入第二个文件而没有特定的行)。 我使用此代码执行此操作: 但是java.lang.IllegalArgumentException发生了: 我的文件在Classpath中。 谢谢。 问题答案: 你不能那样做。 jar本身就是文件,而不是目录。它包含Java知道如何读取的资源。但是

  • 问题内容: 我正在尝试在资源文件夹中写入.txt文件,但是它什么也没写。我可以通过执行以下操作读取相同的.txt文件: 但是当涉及到写作时,我尝试做: 关于如何在该文件夹中写任何建议? 问题答案: 假设您将资源打包为jar,则无法将任何内容写入资源。Jar只。您无法更新。您可以提取和编辑内容。 您可以尝试使用偏好设置作为替代

  • 问题内容: 我想在HDFS中创建文件并在其中写入数据。我使用以下代码: 它创建文件,但不写入任何内容。我搜索了很多,但没有找到任何东西。我怎么了 我是否需要任何权限才能在HDFS中写入? 问题答案: 的替代方法,你可以在获取文件系统时传递URI

  • 问题内容: 我一直在尝试找到一种使用Node.js时写入文件的方法,但是没有成功。我怎样才能做到这一点? 问题答案: 文件系统API中有很多详细信息。最常见的方法是:

  • 我想用Java编写一个html文件。

  • 说我已经试过了。java在~/jar中/ 然后我输入: 我想将这个类导入到~/src/中的另一个源文件中: 我尝试了两种方法: 1. 编译期间可以,但当我尝试运行它时,会出现错误: 2. 我尝试在我的. bashrc和. profile中包含以下命令(我没有.bash_profile或.bash_login): 和: 但这一次,它仍然是错误的: 我应该如何包含外部 jar 文件? 编辑:整个项目只