Java.io,当我将文件压缩为 .jar 时,文件将无法使用 bufferedreader 和 filereader 打开,但是当我直接在 VS 中执行 java 文件时它可以工作

问题描述 投票:0回答:1

我正在学习如何使用 Java.io 来操作和读取文件,但我需要完成程序并准备好使用 .jar 打开

代码工作正常,在 IDE 中运行,但是当我压缩它并打开 .jar 时,出现 catch(FileNotFoundException e) 错误

package com.example;

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

@SuppressWarnings("unused")
public class EjemploFichero01 {

    public static void main(String[] args) {
        try{
            BufferedReader bf = new BufferedReader(new FileReader("malaga1.csv"));
    
            String linea = "";
    
            while ((linea = bf.readLine()) != null) {
                System.out.println(linea);
           }
    
            bf.close();
        }catch (FileNotFoundException e){
        System.out.println("No se encuentra el fichero malaga.txt");
        }catch (IOException e){
            System.out.println("No se puede leer el fichero malaga.txt");
        }
    }

}

尝试运行 .jar 文件,期望出现文件“malaga1.csv”的内容,但我遇到了 (FileNotFoundException e) 错误

我还运行 -jar

java -jar --enable-preview demo.jar

java jar java-io
1个回答
0
投票

问题似乎与执行 JAR 文件时用于访问“malaga1.csv”的文件路径有关。

String jarDir = new File(EjemploFichero01.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()).getParent();
File file = new File(jarDir, "malaga1.csv");
BufferedReader bf = new BufferedReader(new FileReader(file));

也许这会有所帮助

在此输入链接描述

© www.soinside.com 2019 - 2024. All rights reserved.