Rumah  >  Artikel  >  Java  >  Bagaimanakah projek springboot membaca fail dalam direktori sumber?

Bagaimanakah projek springboot membaca fail dalam direktori sumber?

WBOY
WBOYke hadapan
2023-05-19 08:29:201182semak imbas

1: Gunakan kaedah ClassLoader.getResourceAsStream()

Anda boleh menggunakan pemuat kelas untuk mendapatkan aliran input fail sumber. Kaedah ini memerlukan laluan fail sumber sebagai parameter, dan kemudian mengembalikan objek InputStream.

InputStream inputStream = getClass().getClassLoader().getResourceAsStream("file.txt");

Perhatikan bahawa laluan fail sumber yang dikembalikan oleh kaedah ini adalah relatif kepada laluan akar pemuat kelas. Oleh itu, untuk fail dalam direktori sumber, anda perlu memberi awalan nama fail dengan "classpath:". Contohnya: "classpath:file.txt".

2: Gunakan kaedah Class.getResourceAsStream()

Untuk membaca fail sumber, anda boleh menggunakan kaedah getResourceAsStream() kelas Kelas. Kaedah ini memerlukan memasukkan laluan ke fail sumber dan mengembalikan objek InputStream.

InputStream inputStream = getClass().getResourceAsStream("/file.txt");

Laluan fail sumber yang dikembalikan oleh kaedah ini adalah relatif kepada laluan kelas semasa. Oleh itu, untuk fail dalam direktori sumber, anda perlu menambah awalan "/" sebelum nama fail. Contohnya: "/file.txt".

3: Gunakan ResourceLoader untuk memuatkan fail

Gunakan antara muka ResourceLoader Spring untuk memuatkan fail sumber. Antara muka ResourceLoader mempunyai kaedah getResource(), yang menerima parameter laluan fail sumber dan mengembalikan objek Sumber.

Resource resource = resourceLoader.getResource("classpath:file.txt");
InputStream inputStream = resource.getInputStream();

Perlu diingatkan bahawa objek ResourceLoader perlu disuntik ke dalam kelas dan digunakan dalam kaedah. Contohnya:

@Autowired
private ResourceLoader resourceLoader;

public void readResourceFile() throws IOException {
    Resource resource = resourceLoader.getResource("classpath:file.txt");
    InputStream inputStream = resource.getInputStream();
}

4: Gunakan ResourceUtils untuk memuatkan fail

Spring menyediakan kelas alat ResourceUtils, yang boleh digunakan untuk memuatkan fail sumber. Untuk mendapatkan objek fail, gunakan kaedah ResourceUtils.getFile().

File file = ResourceUtils.getFile("classpath:file.txt");

Nota: Kaedah ini hanya berfungsi pada sistem fail tempatan dan fail JAR. Kaedah ini mungkin tidak berfungsi apabila bekerja dengan fail WAR atau jenis fail lain.

5: Gunakan ApplicationContext untuk memuatkan fail

Untuk memuatkan fail sumber, anda boleh menggunakan kaedah getResource() dalam ApplicationContext. Kaedah yang menerima laluan fail sumber sebagai parameter dan mengembalikan objek Sumber.

Resource resource = applicationContext.getResource("classpath:file.txt");
InputStream inputStream = resource.getInputStream();

Perlu diingatkan bahawa objek ApplicationContext perlu disuntik ke dalam kelas dan digunakan dalam kaedah. Contohnya:

@Autowired
private ApplicationContext applicationContext;

public void readResourceFile() throws IOException {
    Resource resource = applicationContext.getResource("classpath:file.txt");
    InputStream inputStream = resource.getInputStream();
}

6: Gunakan ServletContext untuk memuatkan fail

Anda boleh menggunakan kaedah getResourceAsStream() ServletContext untuk membaca fail sumber. Parameter fungsi ini ialah laluan fail sumber dan mengembalikan objek InputStream.

InputStream inputStream = servletContext.getResourceAsStream("/WEB-INF/classes/file.txt");

Perlu diingatkan bahawa objek ServletContext perlu disuntik ke dalam kelas dan digunakan dalam kaedah. Contohnya:

@Autowired
private ServletContext servletContext;

public void readResourceFile() throws IOException {
    InputStream inputStream = servletContext.getResourceAsStream("/WEB-INF/classes/file.txt");
}

7: Gunakan Sistem Fail untuk memuatkan fail

Anda boleh menggunakan kelas Fail untuk membaca fail sumber. Laluan fail penuh diperlukan.

File file = new File("src/main/resources/file.txt");
InputStream inputStream = new FileInputStream(file);

Perlu diingatkan bahawa menggunakan kaedah ini memerlukan menyediakan laluan fail yang lengkap, jadi anda perlu mengetahui laluan mutlak di mana fail itu berada.

8: Gunakan Laluan dan Fail untuk memuatkan fail

Dalam Java NIO, fail sumber boleh dibaca dengan bantuan kelas Laluan dan Fail. Kaedah ini memerlukan laluan fail penuh.

Path path = Paths.get("src/main/resources/file.txt");
InputStream inputStream = Files.newInputStream(path);

Perlu diingatkan bahawa menggunakan kaedah ini memerlukan menyediakan laluan fail yang lengkap, jadi anda perlu mengetahui laluan mutlak di mana fail itu berada.

9: Gunakan ClassPathResource untuk memuatkan fail

Gunakan kelas ClassPathResource yang disediakan oleh Spring untuk membaca fail sumber. Kaedah ini memerlukan laluan relatif bagi fail sumber.

ClassPathResource resource = new ClassPathResource("file.txt");
InputStream inputStream = resource.getInputStream();

Perlu diingatkan bahawa ClassPathResource akan mencari fail sumber dalam laluan kelas, jadi tidak perlu menyediakan laluan fail yang lengkap.

Atas ialah kandungan terperinci Bagaimanakah projek springboot membaca fail dalam direktori sumber?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam