对象流ObjectInoutStream ObjectOutputStream(对象 必须实现 Serializable 接口)
对象序列化的目标是将对象保存到磁盘上,或允许在网络中直接传输对象
为了让某类能够进行序列化,必须实现 Serializable 接口
如果类的某个字段不是基本数据类型或String 类型,而是另一种引用类型,那么这个引用类型必须是可序列化的,否则拥有该类型的Field 的类也不能序列化
RandomAccessFile 类 既可以读取文件内容,也可以向文件写入内容
可对文件的内容进行随机读写
示例代码:
RandomAccessFile random = new RandomAccessFile(new File("engineer.txt"),"rw");
String line = random.readLine();
byte [] buffer = new byte[(int) (random.length()-line.length()) - 1 ];
random.read(buffer);
random.seek(line.length());
random.writeBytes("\nhello,EngiadfsadfneerZhong!!!!\n");
random.write(buffer);
random.close();
48、JAVA常用类
①、String 类(不可变的字符序列)
String strtemp = "EngineerZhong";
String str = new String("Hello");
replace() 新字符替换字符串中的旧字符,生成一个新字符串
字符串缓冲池:直接通过 = 为字符串赋值,会先在缓冲池中查找有没有一样的字符串,如果存在,就把那个引用赋给字符串变量。
如果不存在,创建新的字符串,并把对应的字符串放入到缓冲池中
字符串的几个常用方法
trim( ) 去除字符串前后空格的方法;
subString(fromIndex , endIndex ) [fromIndex,toIndex)半闭半开 求子字符串的方法(包含fromIndex开始,String 的字索引 从 0 开始)
indexOf( ) 、lastIndexOf( ) 求指定字符的索引,经常搭配使用
split( ) 将字符串拆分成字符串数组
equals( ) 比较字符串内容是否相等的方法,不能直接使用 ==
示例代码:
public static void main(String[] args) {
String str = "EngineerZhong";
String strTemp = str.replace('e', 'b');
System.out.println(str);
System.out.println(strTemp);
Person person = new Person("EngineerZhong", 21);
System.out.println(person);
changeName(person);
System.out.println(person);
String str2 = "EngineerZhong";
changeStrName(str2);
System.out.println(str2);
stringTrim();
stringSubString();
stringIndexOf();
stringSplit();
}
public static void changeName(Person person){
person.setName("EngineerYe");
}
public static void changeStrName(String strTemp){
String result = strTemp.replace('E', 'e');
System.out.println(result);
System.out.println(strTemp);
}
public static void stringTrim(){
String str = " E ngineerZ hong ";
System.out.println(str.trim());
}
public static void stringSubString(){
String str = "EngineerZhong";
System.out.println(str.substring(0,8));
}
public static void stringIndexOf(){
String str = "http://www.baidu.com/";
System.out.println(str.indexOf("//"));
System.out.println(str.lastIndexOf("/"));
int beginIndex = str.indexOf("//") + 2;
int endIndex = str.lastIndexOf("/");
System.out.println(str.substring(beginIndex, endIndex));
}
public static void stringSplit(){
String str = "Engineer/Zhong/Ye/Zhou";
String[] strArray = str.split("/");
for(String strTemp : strArray){
System.out.println(strTemp);
}
}
程序输出:
EngineerZhong
EnginbbrZhong
Person [name=EngineerZhong, age=21]
Person [name=EngineerYe, age=21]
engineerZhong
EngineerZhong
EngineerZhong
E ngineerZ hong
Engineer
5
20
www.baidu.com
Engineer
Zhong
Ye
Zhou
实验需求:
将字符串的每个字符 加 1
特殊位置 z 和 Z 默认反复至a 和 A
非字母保持原来的字符
最后输出更改后的字符串
public static void main(String[] args) {
String str = "abcdefzgh#@^ABEEWZ--345s";
System.out.println(str);
for(int i = 0 ; i < str.length() ; i++){
char signCharTemp = str.charAt(i);
if(signCharTemp >= 'a' && signCharTemp <= 'z'){
if(signCharTemp == 'z')
signCharTemp = 'a';
else
signCharTemp = (char) (signCharTemp + 1);
}else if(signCharTemp >= 'A' && signCharTemp <= 'Z'){
if(signCharTemp == 'Z')
signCharTemp = 'A';
else
signCharTemp = (char) (signCharTemp + 1);
}
System.out.print(signCharTemp);
}
}
输出效果:
abcdefzgh#@^ABEEWZ--345s
bcdefgahi#@^BCFFXA--345t
更新时间:2016年9月25日