(1)关于对linux设置环境变量,我基本知道大概,但是没有进行过相对系统和完整的总结,所以经常忘记具体的操作和相关的系统配置文件名,所以在此总结一下加深印象和便于查找。
1.显示环境变量的命令:
echo $变量名
2.显示所有环境变量的命令:
env
3.设置环境变量(临时)临时性的设置会在当前shell关闭后失效,一般不适合生产使用
export 环境变量名=环境变量值
删除临时环境变量命令
unset环境变量名
4.永久性设置环境变量(分系统级别的和用户级别的)
系统级别的,修改系统配置文件/etc/profile(需要root用户权限)
编辑vi /etc/profile
添加 export环境变量名=环境变量值
用户级别的,修改该用户HOME目录下的隐藏配置文件.bash.profile,建议使用
编辑vi $HOME/.bash.profile
添加 export环境变量名=环境变量值
---需要注意的是,永久设置需要下次登陆时才生效,如果需要立即生效,需要运行source 配置文件
(2)java文件操作(append,修改文件名)
因为编码需要,需要对文件进行增加内容操作
刚开始以为能够使用BufferedWriter.append直接进行增加,但是发现没有生效,必须是初始化BufferedWriter对象时在对适配器的构造方法进行参数指定时才生效比如
BufferedWriter br = new BufferedWriter(new FileWriter(“filename”,true);
br使用append才是增加,否则默认是覆盖的,其实想想也能理解,如果不是初始化时指定模式是覆盖还是增加,FileWriter的对象根本就不知道是否要获取原来文件的偏移量,然后再在后续添加内容。
还有个知识点是修改文件名,本来打算使用Runtime.exec去执行,后来发现java的api中有该接口File.renameTo(new File(“newname”);
(3)关于常用的BufferedWriter的对象定义问题,一般有两种定义方法
1. BufferedWriter br = new BufferedWriter(newFileWriter(“filename”);
2. BufferedWriter br = newBufferedWriter(new OutputStreamWriter (newFileOutputStream("filename")));
--其中FileWriter,OutputStreamWriter,FileOutputStream是典型的适配器命名,FileWriter沟通了writer和file两大类,OutputStreamWriter沟通了字符流和字节流,FileOutputStream沟通了字节流和文件两大类。方便记忆的话使用第一种方式定义,如果明白这些都需要通过适配器类转换的话,第二种方式也能记忆,无法是前者一步到位,后者先转换成字节流再通过适配器转化成字符流。
--明天在抽空把分布式锁机制实现机制和例子总结一下。