最好将它放在一个单独的文件中,最好放在 JAR 本身中,这样您就可以轻松地使用getResourceAsStream().
然后,您可以轻松地编辑此文件而不会弄乱代码,您还可以在应用程序编译为 JAR 后对其进行修改。
一般来说,将逻辑与数据分开是一种很好的做法。
以下是我的 FileUtils 类中您可能喜欢的一些方法:
public static String streamToString(InputStream in) {
    BufferedReader br = null;
    StringBuilder sb = new StringBuilder();
    String line;
    try {
        br = new BufferedReader(new InputStreamReader(in));
        while ((line = br.readLine()) != null) {
            sb.append(line + "\n");
        }
    } catch (IOException e) {
        Log.e(e);
    } finally {
        if (br != null) {
            try {
                br.close();
            } catch (IOException e) {
                Log.e(e);
            }
        }
    }
    return sb.toString();
}
public static InputStream stringToStream(String text) {
    try {
        return new ByteArrayInputStream(text.getBytes("UTF-8"));
    } catch (UnsupportedEncodingException e) {
        Log.e(e);
        return null;
    }
}
public static InputStream getResource(String path) {
    return FileUtils.class.getResourceAsStream(path);
}
您还可以使用SimpleConfig类从文件中解析列表和映射:(
注释掉 Log.something 调用并替换为 System.err.println())
package net.mightypork.rpack.utils;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
/**
 * Utility for parsing simple config files<br>
 * # and // mark a comment<br>
 * empty lines and lines without "=" are ignored<br>
 * lines with "=" must have "key = value" format, or a warning is logged.<br>
 * use "NULL" to create empty value.
 * 
 * @author MightyPork
 */
public class SimpleConfig {
    /**
     * Load list from file
     * 
     * @param file file
     * @return map of keys and values
     * @throws IOException
     */
    public static List<String> listFromFile(File file) throws IOException {
        String fileText = FileUtils.fileToString(file);
        return listFromString(fileText);
    }
    /**
     * Load map from file
     * 
     * @param file file
     * @return map of keys and values
     * @throws IOException
     */
    public static Map<String, String> mapFromFile(File file) throws IOException {
        String fileText = FileUtils.fileToString(file);
        return mapFromString(fileText);
    }
    /**
     * Load list from string
     * 
     * @param text text of the file
     * @return map of keys and values
     */
    public static List<String> listFromString(String text) {
        List<String> list = new ArrayList<String>();
        String[] groupsLines = text.split("\n");
        for (String s : groupsLines) {
            // ignore invalid lines
            if (s.length() == 0) continue;
            if (s.startsWith("#") || s.startsWith("//")) continue;
            // NULL value
            if (s.equalsIgnoreCase("NULL")) s = null;
            if (s != null) s = s.replace("\\n", "\n");
            // save extracted key-value pair
            list.add(s);
        }
        return list;
    }
    /**
     * Load map from string
     * 
     * @param text text of the file
     * @return map of keys and values
     */
    public static Map<String, String> mapFromString(String text) {
        LinkedHashMap<String, String> pairs = new LinkedHashMap<String, String>();
        String[] groupsLines = text.split("\n");
        for (String s : groupsLines) {
            // ignore invalid lines
            if (s.length() == 0) continue;
            if (s.startsWith("#") || s.startsWith("//")) continue;
            if (!s.contains("=")) continue;
            // split and trim
            String[] parts = s.split("=");
            for (int i = 0; i < parts.length; i++) {
                parts[i] = parts[i].trim();
            }
            // check if both parts are valid
            if (parts.length == 0) {
                Log.w("Bad line in config file: " + s);
                continue;
            }
            if (parts.length == 1) {
                parts = new String[] { parts[0], "" };
            }
            if (parts.length != 2) {
                Log.w("Bad line in config file: " + s);
                continue;
            }
            // NULL value
            if (parts[0].equalsIgnoreCase("NULL")) parts[0] = null;
            if (parts[1].equalsIgnoreCase("NULL")) parts[1] = null;
            if (parts[0] != null) parts[0] = parts[0].replace("\\n", "\n");
            if (parts[1] != null) parts[1] = parts[1].replace("\\n", "\n");
            // save extracted key-value pair
            pairs.put(parts[0], parts[1]);
        }
        return pairs;
    }
    /**
     * Save map to file
     * 
     * @param target
     * @param data
     * @throws IOException
     */
    public static void mapToFile(File target, Map<String, String> data) throws IOException {
        String text = ""; //# File written by SimpleConfig
        for (Entry<String, String> e : data.entrySet()) {
            if (text.length() > 0) text += "\n";
            String key = e.getKey();
            String value = e.getValue();
            if (key == null) key = "NULL";
            if (value == null) value = "NULL";
            key = key.replace("\n", "\\n");
            value = value.replace("\n", "\\n");
            text += key + " = " + value;
        }
        FileUtils.stringToFile(target, text);
    }
    /**
     * Save list to file
     * 
     * @param target
     * @param data
     * @throws IOException
     */
    public static void listToFile(File target, List<String> data) throws IOException {
        String text = ""; //# File written by SimpleConfig
        for (String s : data) {
            if (text.length() > 0) text += "\n";
            if (s == null) s = "NULL";
            s = s.replace("\n", "\\n");
            text += s;
        }
        FileUtils.stringToFile(target, text);
    }
}