11 releases (stable)
2.0.0 | May 21, 2023 |
---|---|
1.4.1 | Mar 10, 2022 |
1.4.0 | Jul 9, 2021 |
1.3.0 | Oct 25, 2020 |
0.1.1 | Feb 6, 2016 |
#115 in FFI
100,980 downloads per month
Used in 61 crates
(23 directly)
53KB
1K
SLoC
Utilities for reading and writing Java properties files
The specification is taken from https://docs.oracle.com/javase/7/docs/api/java/util/Properties.html. Where the documentation is ambiguous or incomplete, behavior is based on the behavior of java.util.Properties.
Examples
use java_properties::PropertiesIter;
use java_properties::PropertiesWriter;
use java_properties::read;
use java_properties::write;
use std::collections::HashMap;
use std::env::temp_dir;
use std::fs::File;
use std::io::BufReader;
use std::io::BufWriter;
use std::io::prelude::*;
let mut file_name = temp_dir();
file_name.push("java-properties-test.properties");
// Writing simple
let mut src_map1 = HashMap::new();
src_map1.insert("a".to_string(), "b".to_string());
let mut f = File::create(&file_name)?;
write(BufWriter::new(f), &src_map1)?;
// Writing advanced
let mut src_map2 = HashMap::new();
src_map2.insert("a".to_string(), "b".to_string());
let mut f = File::create(&file_name)?;
let mut writer = PropertiesWriter::new(BufWriter::new(f));
for (k, v) in &src_map2 {
writer.write(&k, &v)?;
}
writer.finish();
// Reading simple
let mut f2 = File::open(&file_name)?;
let dst_map1 = read(BufReader::new(f2))?;
assert_eq!(src_map1, dst_map1);
// Reading advanced
let mut f = File::open(&file_name)?;
let mut dst_map2 = HashMap::new();
PropertiesIter::new(BufReader::new(f)).read_into(|k, v| {
dst_map2.insert(k, v);
})?;
assert_eq!(src_map2, dst_map2);
Java properties for Rust
This is a library for reading and writing Java properties files in Rust.
The specification is taken from the Properties documentation.
Where the documentation is ambiguous or incomplete, behavior is based on the behavior of java.util.Properties
.
Example
use std::collections::HashMap;
use std::env::temp_dir;
use std::fs::File;
use std::io::BufReader;
use std::io::BufWriter;
use std::io::prelude::*;
let mut file_name = temp_dir();
file_name.push("java-properties-test.properties");
// Writing
let mut map1 = HashMap::new();
map1.insert("a".to_string(), "b".to_string());
let mut f = File::create(&file_name)?;
write(BufWriter::new(f), &map1)?;
// Reading
let mut f = File::open(&file_name)?;
let map2 = read(BufReader::new(f))?;
assert_eq!(src_map1, dst_map1);
Dependencies
~6.5MB
~173K SLoC