首页 > 其他 > 详细

How to get the file in a resource folder

时间:2015-10-08 22:53:00      阅读:241      评论:0      收藏:0      [点我收藏+]

In a Maven project, we may often struggle to get a certain file (e.g. json file or sql file). Here is how to place the resource file and use it in the java class.

1. If the main class is in folder src/main/java/, the resource file should be placed in the folder src/main/resources/

Suppose the main class is GeneralTest.class and the file to be used is under src/main/resources/stories/simple-upgrades/retry-upgrade-file.story

Then the java program should be as follows

import java.io.File;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class GeneralTest {
	
    protected String getStoriesDirectoryWithinResources() {
    	return "stories" + File.separator + "simple-upgrades";
    }	
    
    protected List<String> storyPaths() {
        List<String> result = new ArrayList<String>();
        String storiesDirectoryWithinResources = getStoriesDirectoryWithinResources();
        URL resource = GeneralTest.class.getClassLoader().getResource(storiesDirectoryWithinResources);
        System.out.println(resource);
        try {
            File folder = new File(resource.toURI());
            if (folder.exists() && folder.canRead() && folder.isDirectory()) {
                File files[] = folder.listFiles();
                Arrays.sort(files);
                for (File file : files) {
                    result.add(file.getPath().substring(folder.getPath().lastIndexOf(storiesDirectoryWithinResources)));
                }
            }
        } catch (URISyntaxException e) {
            e.printStackTrace();
        }
        return result;
    }
    
   public static void main(String... args) throws ClassNotFoundException, NoSuchFieldException, SecurityException {
		GeneralTest test = new GeneralTest();
		System.out.println(test.storyPaths());
	}
}

The output should be:

file:/home/username/workplace/JavaMavenPractice/target/classes/stories/simple-upgrades
[stories/simple-upgrades/retry-upgrade-file.story]

 

How to get the file in a resource folder

原文:http://www.cnblogs.com/codingforum/p/4862347.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!