从java属性文件中读取int []

时间:2017-04-11 06:25:12

标签: java arrays parsing properties-file

我有一个以int[]为输入的方法。

methodABC(int[] nValue)

我想从Java属性文件中获取此nValue

nValue=1,2,3

如何从配置文件中读取此内容,还是以其他格式存储?

我尝试的是(changing the nValue to 123 instead of 1,2,3):

int nValue = Integer.parseInt(configuration.getProperty("nnValue"));

我们如何做到这一点?

5 个答案:

答案 0 :(得分:5)

原始属性文件是如此90%:)你应该使用json文件,

无论如何:

如果你有这个:

nValue=1,2,3

然后读取nValue,将其拆分为逗号并将流/循环解析转换为int

例如:

String property = prop.getProperty("nValue");
System.out.println(property);
String[] x = property.split(",");
for (String string : x) {
    System.out.println(Integer.parseInt(string));
}

因为java 8:

int[] values = Stream.of(property.split(",")).mapToInt(Integer::parseInt).toArray();
for (int i : values) {
    System.out.println(i);
}

答案 1 :(得分:4)

使用String.splitInteger.parseInt。使用Streams,您可以在一行中完成:

String property = configuration.getProperty("nnValue")
int[] values = Stream.of(property.split(",")).mapToInt(Integer::parseInt).toArray()

答案 2 :(得分:1)

您需要将值(nValue=1,2,3)仅作为字符串split字符串(",")读取,然后转换为{{1}数组如下所示:

int[]

现在,您可以通过传递//split the input string String[] strValues=configuration.getProperty("nnValue").split(","); int[] intValues = strValues[strValues.length];//declare int array for(int i=0;i<strValues.length;i++) { intValues[i] = Integer.parseInt(strValues[i]);//populate int array } 数组来调用该方法,如下所示:

intValues

答案 3 :(得分:1)

如果使用Spring,则可以直接读取属性中的数组(如果需要更复杂的数据,还可以使用地图)。例如。在application.properties中:

nValue={1,2,3}

并在您的代码中:

@Value("#{${nValue}}")
Integer[] nValue;

然后你可以在任何你想要的地方使用nValue。

答案 4 :(得分:-2)

以下是如何在java中读取Property文件的属性:

        byte[] bytes = inputString.getBytes("UTF-8");
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        GZIPOutputStream os = new GZIPOutputStream(baos);
        os.write(bytes, 0, bytes.length);
        os.close();
        byte[] result = baos.toByteArray();
        System.out.println(result);
        byte [] base64=Base64.encodeBase64(result);
        String send= new String(base64,"UTF-8");