Rumah > Java > javaTutorial > teks badan

Bagaimana untuk menyelesaikan masalah bahawa springboot tidak boleh mengakses fail selepas membacanya ke dalam pakej balang

WBOY
Lepaskan: 2023-06-03 16:38:18
ke hadapan
2582 orang telah melayarinya

springboot membaca fail, tetapi tidak dapat mengaksesnya selepas membungkusnya ke dalam pakej balang

Dalam perkembangan terkini, terdapat situasi di mana springboot tidak dapat membaca fail selepas membungkusnya ke dalam pakej balang ialah selepas pembungkusan, laluan maya fail adalah tidak sah dan hanya boleh dibaca melalui strim.

Fail berada di bawah sumber

public void test() {
  List<String> names = new ArrayList<>();
  InputStreamReader read = null;
  try {
   ClassPathResource resource = new ClassPathResource("name.txt");
 
   InputStream inputStream = resource.getInputStream();
   read = new InputStreamReader(inputStream, "utf-8");
   BufferedReader bufferedReader = new BufferedReader(read);
   String txt = null;
   while ((txt = bufferedReader.readLine()) != null) {
    if (StringUtils.isNotBlank(txt)) {
     names.add(txt);
    }
   }
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   if (read != null) {
    try {
     read.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  }
 }
Salin selepas log masuk

Latar belakang pakej springboot jar tidak boleh mengakses folder statik

1 Kadangkala, fail di bawah classpath digunakan di latar belakang Secara amnya, kami menulisnya seperti ini

File file = ResourceUtils.getFile("classpath:static/image/image");
Salin selepas log masuk

Dalam kes ini, tiada masalah. Tetapi selepas menjalankan pakej balang, fail itu tidak akan ditemui.

Fail di bawah Sumber wujud dalam fail balang. Tiada laluan sebenar pada cakera Ia sebenarnya laluan di dalam balang. Oleh itu, fail tidak boleh diperoleh dengan betul melalui kaedah ResourceUtils.getFile atau this.getClass().getResource("").

Untuk situasi ini. Kadangkala dokumen projek diletakkan di luar projek, tetapi mudah untuk memadamkan perkara ini secara tidak sengaja.

2. ClassPathResource

 ClassPathResource cpr = new ClassPathResource("static/image/image/kpg");
 InputStream in = cpr.getInputStream();
Salin selepas log masuk

3.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah bahawa springboot tidak boleh mengakses fail selepas membacanya ke dalam pakej balang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan