packagecom.sbx.io;importjava.io.File;importjava.io.FileReader;importjava.io.FileWriter;importjava.util.Scanner;/*** Created by BlueLover
* Name:苏半夏
* Date:2021/2/26
* Time:11:00*/
public classMyFileTest {/*** 使用FileOutputStream类向文件中写入数据与使用FileInputStream类从文件中将内容读出来,都存在一点不足,即这两个类值提供了对字节或字节数组的读取方法。由于汉字在文件中占用两个字节,如果使用字节流,读取不好可能会出现乱码现象,此时采用字符流Reader或Writer类即可避免这种现象。*/String text;//读取文件的方法
public voidReadFile(File file){try{//读取文件中的内容
FileReader in = newFileReader(file);char byt[] = new char[2];intlen;
System.out.println("文件中的信息是:");while((len = in.read(byt))!=-1){
System.out.print(new String(byt,0,len));
text+= new String(byt,0,len);
}
in.close();
text= this.text.substring(4);
System.out.println(text);
}catch(StringIndexOutOfBoundsException e1){
System.out.println("文件内容为空");
}catch(Exception e){
e.printStackTrace();
}
}//写入文件的方法
public voidWriteFile(File file){try{/*** 为了避免原有内容被覆盖,我们需要先读取出原有的内容*/
this.ReadFile(file);//写入文件
FileWriter out = newFileWriter(file);
System.out.println("请输入要写入的内容:");
Scanner scanner= newScanner(System.in);
String newText=scanner.next();
System.out.println("是否覆盖原有内容?请选择:1-是 2-否 ");if (Integer.parseInt(scanner.next())==1){
System.out.println("您选择覆盖原有内容");
out.write(newText);
}else{
System.out.println("您选择不覆盖原有内容");
out.write(this.text);
out.write(newText);
}
scanner.close();
out.close();
}catch(Exception e){
e.printStackTrace();
}
}public static voidmain(String[] args) {
File file= new File("test.txt");
MyFileTest myFileTest= newMyFileTest();
System.out.println("============读取==============");
myFileTest.ReadFile(file);
System.out.println("============写入==============");
myFileTest.WriteFile(file);
System.out.println("============写入后读取==============");
myFileTest.ReadFile(file);
}
}/*潇洒如我最近却变得有点敏感
半小时收不到你讯息就会坐立不安
都说别爱的太满 这道理知易行难
我还挺乐意享受这份甜中微酸
你的笑像西瓜最中间那一勺的口感
点亮了一整个夏天 星空也为你斑斓
我不会深情款款上演什么套路桥段
我的爱纯粹简单*/