- 浏览: 517119 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (278)
- java (41)
- 设计模式 (4)
- sql (10)
- webservice (2)
- spring (9)
- struts (6)
- struts2 (32)
- hibernate (27)
- Struts_hibernate_Spring整合 (4)
- Velocity (1)
- Servlet (9)
- JSP (6)
- javascript (19)
- jquery (10)
- ajax (4)
- html、xml (3)
- JDBC (2)
- JDK (6)
- mysql (2)
- oracle (11)
- SqlServer (1)
- DB2 (4)
- tool (7)
- linux (5)
- UML (1)
- eclipse (8)
- 执行文件 (1)
- 应用服务器 (4)
- 代码重构 (1)
- 日本語 (19)
- 交规 (1)
- office (9)
- firefox (1)
- net (1)
- 测试 (1)
- temp (6)
- 对日外包 (1)
- windows (1)
- 版本控制 (1)
- android (2)
- 项目管理 (1)
最新评论
一、在 properties 文件中 定义{ } 会出错
使用MessageFormat.applyPattern时一直抛出异常:
java.lang.IllegalArgumentException: can't parse argument number margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;
经过检查是properties文件中的“{”引起的 ,因为这一段是css的style,但是applyPattern是将这个“{”当成占位符处理了 ,\u007B也试过了,不好使,没办法只能查看java源代码,这个方法的代码如下:
public void applyPattern(String pattern) { StringBuffer[] segments = new StringBuffer[4]; for (int i = 0; i < segments.length; ++i) { segments[i] = new StringBuffer(); } int part = 0; int formatNumber = 0; boolean inQuote = false; int braceStack = 0; maxOffset = -1; for (int i = 0; i < pattern.length(); ++i) { char ch = pattern.charAt(i); if (part == 0) { if (ch == '\'') { if (i + 1 < pattern.length() && pattern.charAt(i+1) == '\'') { segments[part].append(ch); // handle doubles ++i; } else { inQuote = !inQuote; } } else if (ch == '{' && !inQuote) { part = 1; } else { segments[part].append(ch); } } else if (inQuote) { // just copy quotes in parts segments[part].append(ch); if (ch == '\'') { inQuote = false; } } else { switch (ch) { case ',': if (part < 3) part += 1; else segments[part].append(ch); break; case '{': ++braceStack; segments[part].append(ch); break; case '}': if (braceStack == 0) { part = 0; makeFormat(i, formatNumber, segments); formatNumber++; } else { --braceStack; segments[part].append(ch); } break; case '\'': inQuote = true; // fall through, so we keep quotes in other parts default: segments[part].append(ch); break; } } } if (braceStack == 0 && part != 0) { maxOffset = -1; throw new IllegalArgumentException("Unmatched braces in the pattern."); } this.pattern = segments[0].toString(); }
发现这一段:
if (ch == '\'') { if (i + 1 < pattern.length() && pattern.charAt(i+1) == '\'') { segments[part].append(ch); // handle doubles ++i; } else { inQuote = !inQuote; } }
转移符竟然是“ \' ”,想用单引号就写成“ \'\' ” ,想用 { 就写成 “ \'\{ ”
二、 properties 文件内 换行、输出时 换行
Java读取资源文件时内容过长与换行的处理
Java读取Properties文件时碰到两问题
1.
资源文件中的key对应的value过长时,书写不方便,需要换行,若直接回车则回车后的内容被忽略
2.
资源文件中的key对应的value需要换行显示时,若直接回车,则同样丢掉回车后的部分
针对上述问题找到如下解决办法:
1.
内容过长需要换行时拼接个\斜杠,这样\后的内容后正常显示
2.
若内容本身需要换行时则用\n代替回车
import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class PropertiesTest2 { public static void main(String[] args) { Properties properties = new Properties(); try { InputStream inputStream = PropertiesTest2.class.getClassLoader().getResourceAsStream("test.properties"); properties.load(inputStream); inputStream.close(); //关闭流 } catch (IOException e) { e.printStackTrace(); } String key1 = properties.getProperty("key1"); String key2 = properties.getProperty("key2"); System.out.println(key1); System.out.println(key2); } }
输出结果:
Where did you take the picture? It's so beautiful!
Spring
Hibernate
Ibatis
Velocity
Java
Struts
附:test.properties 中的内容
key1=Where did you take the picture? \ It's so beautiful! key2=Spring\nHibernate\nIbatis\nVelocity\nJava\nStruts
发表评论
文章已被作者锁定,不允许评论。
-
Java8 ,JDK1.8 新特性
2016-12-08 14:58 773一、接口的默认方法 Java 8允许我们给接口 ... -
Google Guava官方教程 学习
2016-12-05 17:43 346http://ifeve.com/google- ... -
Guava 相关内容(一)
2016-05-20 00:08 519一、Java 不可以变的集合 Guava学习笔记: ... -
poi excel 相关
2015-04-07 11:22 691一、poi excel 分组(group) ... -
java 相关问题(四)
2013-05-24 15:54 1245十九、Java中对Map(HashMap,TreeMap, ... -
apache-common
2013-01-09 10:47 1048... -
Java注释的写法
2012-11-16 15:02 781一. Java 文档 // 注释 ... -
正则表达式
2012-05-25 09:19 973编程的大量工作都是在处理字符串,如验证输入、查 ... -
java 相关问题(三)
2012-03-08 16:31 1502十三、java 实现 调用 打印机 代码详解 ... -
J2EE秘籍
2012-02-13 15:42 719转:http://zhufeng1981.iteye.com/ ... -
java 相关问题(二)
2011-08-02 15:47 1091七、ThreadLocal 详解 首先,Thre ... -
Apache Commons BeanUtils
2011-06-08 17:24 1546功能说明: 顾名思义,Bean Utility就是Bean小 ... -
java 相关问题(一)
2011-05-10 19:16 1032一、 java Cloneable 详 ... -
java 读写 properties
2011-04-19 14:15 1213一、 /* * @(#)RWProper ... -
JMS API 中文版
2011-04-13 14:20 826转:http://www.iteye.com/to ... -
ant 教程
2011-04-12 23:56 1157一、ant 教程 1 Ant是什么? ... -
java 线程
2011-02-10 17:07 924一、 Runnable、 Thread ... -
java.util.logging (不用log4j配置,自己写log文件)
2010-10-11 11:55 7450<!-- Generated by javadoc ( ... -
java 静态块 非静态块
2010-09-21 17:39 1417一。一个简单的例子 1. 所有静态的(无论其是变量 ... -
java MessageFormat
2010-09-21 11:03 3507一。 MessageFormat 提供了以 ...
相关推荐
### 如何使用Java读取properties文件内容 在Java开发中,`properties`文件是一种非常常见的配置文件格式,它主要用于存储程序的各种配置信息。通过这种方式,可以实现程序与配置的分离,便于维护和调整。本文将详细...
在使用Eclipse或MyEclipse开发环境中,经常会遇到properties文件中的中文字符显示异常的问题。这主要是因为properties文件默认采用ASCII编码,而中文字符需要使用Unicode编码才能正常显示。本文将详细介绍如何通过...
// FieldName 是在“Settings.settings”文件中定义的设置名 ``` 3. **修改设置**: ```csharp Properties.Settings.Default.FieldName = "new value"; Properties.Settings.Default.Save(); // Save() 方法会...
这是一个Spring的bean定义类,它允许我们从properties文件中加载和解析属性值,然后将这些值注入到其他bean的属性中。首先,我们需要创建一个properties文件,例如`application.properties`,并放入项目的类路径下...
在提供的示例中,我们看到了一个`application.yml`文件的部分内容,其中定义了自定义的属性和值: ```yaml myYml: simpleProp: simplePropValue arrayProps: 1,2,3,4,5 listProp1: - name: abc value: ...
### Struts 2 properties文件详解 #### 概述 `struts.properties` 文件是Struts 2框架中的核心配置文件之一,它包含了Struts 2框架运行时所需的一系列配置属性。这些属性决定了Struts 2的行为特征以及与其他组件如...
通过这个文件,开发者可以定义日志消息的输出方式(例如控制台或文件)、日志级别(如DEBUG、INFO等)以及日志格式等内容。正确配置`log4j.properties`对于应用程序的日志管理和调试至关重要。 #### 二、日志级别 ...
总的来说,解决`myeclipse10 properties文件中文显示`的问题,需要关注文件编码、内容格式、编辑器配置以及Java代码中的资源加载等多个方面。掌握这些知识点,将有助于提升在多语言项目中的开发效率和质量。在...
接下来,加载Properties文件的内容到内存中,可以使用`Properties`类的`load()`方法: ```java Properties properties = new Properties(); InputStream inputStream = ClassLoader.getSystemResourceAsStream("info...
总的来说,Log4j是一个强大且灵活的日志工具,通过`log4j-1.2.9.jar`和`log4j.properties`这两个文件,我们可以轻松地在Java项目中实现定制化的日志记录,从而提升开发效率和问题排查能力。虽然Log4j 1.x已经较为...
3. **读取properties文件内容** 加载后,可以通过`getProperty()`方法获取键对应的值。例如,获取`username`的值: ```java String username = prop.getProperty("username"); System.out.println("Username: ...
3. **测试验证**:编写单元测试或者手动启动应用,访问相关接口来验证`sysId`变量是否正确读取了配置文件中的值。 #### 4. 总结 通过以上步骤,我们可以实现在Java类中通过`${}`语法读取`.properties`文件中的属性...
在Ant中,我们可以创建一个任务来读取和使用properties文件,这通常用于存储应用的配置信息,如数据库连接字符串、服务器端口等。 首先,我们需要在build.xml文件中引入`<property>`元素来引用外部的properties文件...
首先,在Spring的配置文件(如`applicationContext.xml`)中定义一个bean,然后指定properties文件的位置: ```xml <value>classpath:config.properties ``` 这样,你就可以在其他bean的配置中用`${...
在"Log4j.jar包,和log4j.properties属性文件打包下载"中,我们有两个关键组成部分: 1. **Log4j.jar**:这是Log4j的主要库文件,包含了所有必需的类和方法,使得程序员能够方便地在代码中插入日志语句。它提供了...
在Spring的配置文件中,首先需要定义一个`PropertyPlaceholderConfigurer` bean,这是Spring用来解析Properties文件并将其值注入到其他bean中的关键组件。如示例所示: ```xml <value>/db.properties ``...
在 Liferay 中,`portal.properties` 文件是一个至关重要的配置文件,它定义了系统的全局属性和行为。对于 Liferay 6.0.5 版本,理解并熟练掌握 `portal.properties` 文件的配置至关重要,因为它直接影响到平台的...
然而,直接在文本编辑器中处理包含中文的.properties文件时,往往会出现编码问题,导致中文乱码。为了解决这个问题,我们引入了“Properties Editor”,这是一个专为Struts设计的.properties文件编辑工具,它支持...
当我们在properties文件中定义属性值时,如果某个值过长或者需要换行,可能会导致读取时出现问题。例如,在`test.properties`文件中有这样的定义: ```properties name=Helloworld\ MyNameisferreousbox ``` 当...
然而,在读写Properties文件时,需要注意元素的顺序,因为Properties继承自HashTable,直接通过keySet()、keys()或entrySet()方法对Properties中的元素进行遍历时取出来的内容顺序与properties文件中的顺序不一致。...