package com.baidu.disconf.web.test.service.config.dao; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.net.URL; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import com.baidu.disconf.web.service.config.bo.Config; import com.baidu.disconf.web.service.config.dao.ConfigDao; import com.baidu.disconf.web.test.common.BaseTestCase; import com.github.knightliao.apollo.utils.io.FileUtils; import junit.framework.Assert; /** * @author liaoqiqi * @version 2014-6-17 */ public class ConfigDaoTestCase extends BaseTestCase { protected static final Logger LOG = LoggerFactory.getLogger(ConfigDaoTestCase.class); @Autowired private ConfigDao configDao; @Test public void test() { URL url = ClassLoader.getSystemResource("file2/confA.properties"); byte[] btyes = readFileContent(url.getPath()); try { // read data String str = new String(btyes, "UTF-8"); // save to db Config config = configDao.get(1L); config.setValue(str); configDao.update(config); // read LOG.info(configDao.get(1L).getValue()); } catch (UnsupportedEncodingException e) { Assert.assertTrue(false); } } /** * 读取文件的内容到byte数组中 * * @param fileName * * @return */ private byte[] readFileContent(String fileName) { InputStream is = null; try { // 按GBK编码与UTF-8编码分别查找文件 File f = new File(new String(fileName.getBytes("GBK"))); f = f.isFile() ? f : new File(new String(fileName.getBytes("UTF-8"))); if (!f.isFile()) { LOG.error(fileName + " 文件不存在!"); return null; } int length = (int) f.length(); byte[] bytes = new byte[length]; is = new FileInputStream(f); is.read(bytes); return bytes; } catch (Exception e) { LOG.error("error when download " + fileName, e); } finally { FileUtils.closeInputStream(is); } return null; } }