不得不说Java核心技术卷一里面对文件输入输出介绍的太简单了。我还是参考CSDN里的博客才简单明白的,还是有很多问题不知道暂且不理会,现在刚刚开始学习Java的基础语法,等熟悉了再回头看看吧。
写下自己对代码(后面贴出)的心得:
1在读写文件之前,先要创建一个文件对象
2用PringtWriter对文件进行写入,因为写入到文件就像写入到屏幕一样,可以用print和println方法。
3用Scanner来对文件进行读取,读取就像利用键盘把东西输入到内存一样,所以用next。
4注意写入TXT文本文件的是一个个用空格隔开的字符串,我就是没注意到这一点,写入文件时时在数字与前面的单词之前没加空格,又把数字当做int类型而不是字符串类型进行读取,导致部分编译出错。
5对一个不存在的文件用Scanner读取和不能写入的文件用PrintWriter写入都会发生异常,要进行处理,这部分不理解,等学到后边再来看吧
6前边加的一堆import不懂是什么意思。
7编译时没错误执行不出来,直接找报错内容最后一行,其中的数字就是代码段出错的位置所在行数。
8Java中读取文件可以用input.hasNext()作为while循环判断条件,每执行一次就读取一行,在读取一次的过程中一个一个读取字符串。感觉和c++差不多,我了解的不多,可能会有更好的方法读取吧。还有不知道Java可不可以像c++一样把内容是数字的字符串转成数字。
package inout;
import java.io.File;
import java.io.PrintWriter;
import java.util.Scanner;
import java.io.IOException;
public class demo {
public static void main(String[] args) throws IOException{//抛出异常
File file=new File("scores.txt");//创建文件
if(file.exists()) System.out.println("file already exists");//检测文件是否存在
try(PrintWriter output=new PrintWriter(file);){//写入文件
output.print("John T Smith ");
output.println(90);
output.print("Eric K Jones ");
output.println(85);
}
Scanner input=new Scanner(file);
while(input.hasNext()){//读取文件
String firstName=input.next();
String mi=input.next();
String lastName=input.next();
String score =input.next();
System.out.println(firstName+" "+mi+" "+lastName+" "+score);
}
input.close();//关闭文件
}