一、写文件操作
在 Java 中,文件输出流是一种用于处理原始二进制数据的字节流类。为了将数据写入到文件中,必须将数据转换为字节,并保存到文件。请参阅下面的完整的例子。
public class WriteFileExample {
public static void main(String[] args) {
FileOutputStream fop = null;
File file;
String content = "This is the text content";
try {
file = new File("c:/newfile.txt");
fop = new FileOutputStream(file);
// if file doesnt exists, then create it
if (!file.exists()) {
file.createNewFile();
}
// get the content in bytes
byte[] contentInBytes = content.getBytes();
fop.write(contentInBytes);
fop.flush();
fop.close();
System.out.println("Done");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fop != null) {
fop.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
复制代码
更新的 JDK7 例如,使用新的“尝试资源关闭”的方法来轻松处理文件。
public class WriteFileExample {
public static void main(String[] args) {
File file = new File("c:/newfile.txt");
String content = "This is the text content";
try (FileOutputStream fop = new FileOutputStream(file)) {
// if file doesn't exists, then create it
if (!file.exists()) {
file.createNewFile();
}
// get the content in bytes
byte[] contentInBytes = content.getBytes();
fop.write(contentInBytes);
fop.flush();
fop.close();
System.out.println("Done");
} catch (IOException e) {
e.printStackTrace();
}
}
}
复制代码
二、字符串如何判空?
在一次编码过程中,有一个现象一直困扰着自己,经过后台的不断调试,才发现原来有时候字符串的空非空。测试代码如下:
// medname可为药品名称或药品ID
String medname = request.getString("medname").trim();
logger.info("medname.length():" + medname.length());
logger.info("mednameisNULL:" + (medname == null));
复制代码
当自己在前台什么都不输入的时候,输出结果如下:
这样自己就感到费解了,命名自己什么都没有输入啊,并且经过trim()
【trim():去掉字符串首尾的空格。】方法的操作,按理说应该为空才对。
然后自己想,是不是因为没输入其实代表的是输入的空字符串,而空字符串不同于 null。于是自己就写了如下测试语句:
logger.info("mednam:" + (medname == ""));
复制代码
测试结果如下:
果然印证了自己的想法。其果然是一个空字符串!
以后得注意一下这个问题了,否则会很容易留下 BUG 的。
三、利用正则表达式批处理含链接内容文档
由于项目需求,自己需要将带有链接的标签去除,例如
<a href="/zhaoyao/17-66.html">头晕</a>,转换后的文档为头晕。
由于说明书数量太大(100,569)自己需要采用批处理的方式进行操作。以后用户访问的就是批处理后的文档。故采用正则表达式的形式进行文档处理。
要读取文档内 10w 多条的数据,可按照 3 步走战略:
外层循环利用文件过滤器读取文件夹内所有符合条件的文件。
读取每一个筛选到的文件,利用正则表达式去除超链接符号。
将每一个处理过的文件重写回源文件。
评论