亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java如何根據(jù)文件名前綴自動(dòng)分組圖片文件

 更新時(shí)間:2025年05月12日 15:20:35   作者:頗有幾分姿色  
一大堆文件(比如圖片)堆在一個(gè)目錄下,它們的命名規(guī)則遵循一定的格式,混在一起很難管理,所以本文小編就和大家介紹一下如何使用Java根據(jù)文件名前綴自動(dòng)分組圖片文件吧

需求

一大堆文件(比如圖片)堆在一個(gè)目錄下,它們的命名規(guī)則遵循一定的格式,混在一起很難管理。需通過(guò)代碼自動(dòng)歸類(lèi)整理。根據(jù)文件名前綴將圖片文件自動(dòng)分組,為每一組創(chuàng)建一個(gè)文件夾來(lái)歸檔。

背景

一批圖片文件,命名格式如下:

A_20241021-1.jpg
A_20241021-2.jpg
A_20241022-1.png
A_20241023-1.xml

-1, -2 之前的部分是一致的。前綴相同的文件屬于同一組。根據(jù)這個(gè)前綴,把它們分到各自的“文件夾”中。

分析思路

提取文件名前綴:以 -數(shù)字 為分隔,去掉后綴名,取前半部分作為分組依據(jù)。

使用 Map 存儲(chǔ)分組結(jié)果:key 是前綴,value 是對(duì)應(yīng)的文件列表。

輸出或移動(dòng)到對(duì)應(yīng)的文件夾中。

實(shí)現(xiàn)代碼

下面是完整的示例代碼,重點(diǎn)是如何提取前綴并進(jìn)行分組:

import java.util.*;

public class FileGrouper {
    public static void main(String[] args) {
        // 示例文件名列表
        List<String> fileNames = Arrays.asList(
            "A_20241021-1.jpg",
            "A_20241021-2.jpg",
            "A_20241022-1.jpg",
            "A_20241023-1.jpg"
        );

        // 存儲(chǔ)分組后的文件名
        Map<String, List<String>> groupedFiles = new HashMap<>();

        for (String fileName : fileNames) {
            // 提取前綴部分作為 key
            String prefix = getPrefix(fileName);

            // 添加到對(duì)應(yīng)的分組
            groupedFiles.computeIfAbsent(prefix, k -> new ArrayList<>()).add(fileName);
        }

        // 輸出分組結(jié)果
        for (Map.Entry<String, List<String>> entry : groupedFiles.entrySet()) {
            System.out.println("文件夾: " + entry.getKey());
            for (String file : entry.getValue()) {
                System.out.println("  " + file);
            }
        }
    }

    /**
     * 獲取文件名前綴(去掉 `-數(shù)字` 和擴(kuò)展名)
     */
    private static String getPrefix(String fileName) {
        int lastDashIndex = fileName.lastIndexOf('-');
        if (lastDashIndex != -1) {
            return fileName.substring(0, lastDashIndex);
        }
        return fileName;
    }
}

輸出結(jié)果

運(yùn)行后,你會(huì)得到如下輸出:

文件夾: A_20241021
  A_20241021-1.jpg
  A_20241021-2.jpg
文件夾: A_20241022
  A_20241022-1.jpg
文件夾: A_20241023
  A_20241023-1.jpg

分組成功,為每組生成了“文件夾名”。

知識(shí)擴(kuò)展

Java 根據(jù)文件名前綴找文件

在Java中,我們可以通過(guò)文件名的前綴來(lái)查找文件。這個(gè)過(guò)程主要分為以下幾個(gè)步驟:讀取文件目錄、篩選文件名、匹配前綴、找到目標(biāo)文件。

詳細(xì)步驟

步驟1:讀取文件目錄

首先,我們需要獲取目標(biāo)文件夾中的所有文件名列表。

// 指定目標(biāo)文件夾路徑
File folder = new File("path/to/folder");
// 獲取目標(biāo)文件夾中的所有文件
File[] listOfFiles = folder.listFiles();

步驟2:篩選文件名

接下來(lái),我們需要篩選出目標(biāo)文件名。

List<String> fileNames = new ArrayList<>();
for (File file : listOfFiles) {
    if (file.isFile()) {
        fileNames.add(file.getName());
    }
}

步驟3:匹配前綴

然后,我們需要匹配文件名前綴,找到目標(biāo)文件。

String targetPrefix = "prefix";
String targetFile = null;
for (String fileName : fileNames) {
    if (fileName.startsWith(targetPrefix)) {
        targetFile = fileName;
        break;
    }
}

步驟4:找到目標(biāo)文件

最后,我們可以根據(jù)目標(biāo)文件名找到目標(biāo)文件。

File file = new File(folder.getPath() + File.separator + targetFile);
// 進(jìn)行后續(xù)操作,比如讀取文件內(nèi)容

到此這篇關(guān)于Java如何根據(jù)文件名前綴自動(dòng)分組圖片文件的文章就介紹到這了,更多相關(guān)Java自動(dòng)分組圖片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java中將科學(xué)計(jì)數(shù)法轉(zhuǎn)換普通計(jì)數(shù)法的簡(jiǎn)單方法

    java中將科學(xué)計(jì)數(shù)法轉(zhuǎn)換普通計(jì)數(shù)法的簡(jiǎn)單方法

    下面小編就為大家?guī)?lái)一篇java中將科學(xué)計(jì)數(shù)法轉(zhuǎn)換普通計(jì)數(shù)法的簡(jiǎn)單方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12
  • 使用Sentinel實(shí)現(xiàn)流控和服務(wù)降級(jí)的代碼示例

    使用Sentinel實(shí)現(xiàn)流控和服務(wù)降級(jí)的代碼示例

    Sentinel是面向分布式、多語(yǔ)言異構(gòu)化服務(wù)架構(gòu)的流量治理組件,本文將詳細(xì)為大家介紹如何使用Sentinel實(shí)現(xiàn)流控和服務(wù)降級(jí),文中有相關(guān)的代碼示例,需要的朋友可以參考下
    2023-05-05
  • 如何將mybatis配置到springmvc中

    如何將mybatis配置到springmvc中

    為了更方便的連接數(shù)據(jù)庫(kù),將mybatis配置到springMVC中。接下來(lái)通過(guò)本文給大家分享如何將mybatis配置到springmvc中,需要的朋友參考下吧
    2017-11-11
  • Java如何從json字符串中獲取某個(gè)值詳解

    Java如何從json字符串中獲取某個(gè)值詳解

    Java開(kāi)發(fā)當(dāng)中經(jīng)常需要Json格式的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Java如何從json字符串中獲取某個(gè)值的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • java生成壓縮文件示例代碼

    java生成壓縮文件示例代碼

    在工作過(guò)程中,需要將一個(gè)文件夾生成壓縮文件,然后提供給用戶下載。寫(xiě)了一個(gè)壓縮文件的工具類(lèi)。該工具類(lèi)支持單個(gè)文件和文件夾壓縮
    2013-11-11
  • 解決swaggerUI頁(yè)面沒(méi)有顯示Controller方法的坑

    解決swaggerUI頁(yè)面沒(méi)有顯示Controller方法的坑

    這篇文章主要介紹了解決swaggerUI頁(yè)面沒(méi)有顯示Controller方法的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Spring MVC配置雙數(shù)據(jù)源實(shí)現(xiàn)一個(gè)java項(xiàng)目同時(shí)連接兩個(gè)數(shù)據(jù)庫(kù)的方法

    Spring MVC配置雙數(shù)據(jù)源實(shí)現(xiàn)一個(gè)java項(xiàng)目同時(shí)連接兩個(gè)數(shù)據(jù)庫(kù)的方法

    這篇文章主要給大家介紹了關(guān)于Spring MVC如何配置雙數(shù)據(jù)源實(shí)現(xiàn)一個(gè)java項(xiàng)目同時(shí)連接兩個(gè)數(shù)據(jù)庫(kù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-05-05
  • Java正則表達(dá)式處理特殊字符轉(zhuǎn)義的方法

    Java正則表達(dá)式處理特殊字符轉(zhuǎn)義的方法

    由于正則表達(dá)式定了一些特殊字符,而有時(shí)候需要對(duì)這些特殊字符進(jìn)行匹配的話就需要進(jìn)行轉(zhuǎn)義了,下面這篇文章主要給大家介紹了Java正則表達(dá)式處理特殊字符轉(zhuǎn)義的方法,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-01-01
  • 深入了解Java中的反射機(jī)制(reflect)

    深入了解Java中的反射機(jī)制(reflect)

    Java的反射機(jī)制允許我們對(duì)一個(gè)類(lèi)的加載、實(shí)例化、調(diào)用方法、操作屬性的時(shí)期改為在運(yùn)行期進(jìn)行,這大大提高了代碼的靈活度,本文就來(lái)簡(jiǎn)單講講反射機(jī)制的具體使用方法吧
    2023-05-05
  • 如何把idea中的項(xiàng)目導(dǎo)入github倉(cāng)庫(kù)中(圖文詳解)

    如何把idea中的項(xiàng)目導(dǎo)入github倉(cāng)庫(kù)中(圖文詳解)

    這篇文章主要介紹了如何把idea中的項(xiàng)目導(dǎo)入github倉(cāng)庫(kù)中,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07

最新評(píng)論