java大作业中的文件操作
java大作业要求将内容读入一个文件内,之后再次运行该程序时将内容读入。
例如,在程序中已经读入了三个宠物的信息,在程序退出之前将这三个宠物信息存入到一个文件内。当再次运行该程序时,需要先将文件内的三个宠物信息进行读入到程序中。
在这个过程中,用到了FileWriter
和BufferedReader
。尽管FileReader
也可以进行读入,但是实现以上操作过于复杂,因此用BufferedReder
进行替换。
将程序内的信息存入文件内
public void writeToFile() {
try (FileWriter writeFile = new FileWriter("pets.txt")) {
writeFile.write("content");
} catch (Exception e) {
sout(e.getMessage());
}
}
这个函数块内的操作等价于:
FileWriter writeFile = null;
try {
writeFile = new FileWriter("pets.txt");
} catch (Exception e) {
sout(e.getMessage());
} finally {
if(writeFile != null) {
writeFile.close();
}
}
将要存入文件的内容替换"content"
内容,即可实现。
程序读入文件内的内容
public void fromFileToProgram() {
try(BufferedReader br = new BufferedReader(new FileReader("pets.txt"))) {
String line = "";
while( (line = br.readLine()) != null) {
// 得到这一行字符串line,进行操作即可。
}
}
}
经过实践,如果该行是只有换行符\n
的话就是null
。
对字符串进行操作
用BufferedReader
进行读取一行得到的是这一行的字符串。可能这一行里面有名字、年龄、颜色、体重等。如何获取具体且准确的信息呢。
可以用trim()
、split(reg)
这些函数。
trim()
将字符串前后的空格去掉。
split(reg)
以reg
内容进行分割,得到字符串数组。
例如,Hello I am Golemon
。
对这个字符串按空格进行分割。
String str = "Hello I am Golemon";
String[] sa = str.split(" ");
// 得到了字符串数组 ["Hello", "I", "am", "Golemon"]
现在得到了这些信息的字符串类型,对于int
,double
型如何进行转换呢。
可以用Java提供的字符串转基础类型的方法。
只有合法的基础类型的字符串类型才行。"123"可以转为123,但是"12e3"不能被转为整型,会发生异常。
- 字符串转整型
String str = "2323";
int a = Integer.parseInt(str);
- 字符串转浮点型
同理
String str = "1212.22";
double b = Double.parseDouble(str);
现在,就可以完成大作业的文件处理部分了。