最近一直在看
java的
学习视频,对java的io操作的几种方式觉得很不错,特此整理一下。
首先,不管读写操作,均可看作一种流的方式,其中有以下几种分类方式:
第一:
1.输入流;(InputStream,作为字节流的父类)
2.输出流;(OutputStream,作为字节流的父类)
第二:
1.字节流;(FileInputStream,FileOutputStream)
2.字符流; (FileReader,FileWriter)
第三:
1.节点流;
2.处理流;(BufferedReader)也是字符流还是输入流;
部分主要代码:(字节流)
FileInputStream fis = new FileInputStream("文件的地址");
FileOutputStream fos = new FileOutputStream("写入的文件地址");
byte[] buffer = new byte[100];
int temp = fis.read(buffer,0,buffer.length);
fos.write(buffer,0,temp);
部分主要代码:(字符流)与字节流差不多
FileReader fr = new FileReader("读取文件的地址");
FileWriter fw = new FileWriter("写入文件的地址");
char[] buffer = new char[1024];
while(true){
int temp = fr.read(buffer,0,buffer.length);
if(temp == -1)
break;
fw.write(buffer,0,temp);
}
部分主要代码:处理流
BufferedReader bufferedreader = new BufferedReader(new FileReader("读取文件的地址"));
String line = bufferedreader.readLine();
即可读取文件中的一行代码。
其中BufferedReader的方式相当于一个装饰者功能,FileReader相当于被装饰者。其中引出一个经典的装饰者设计模式:
以上方式总结完毕。另外总结如何将键盘输入存入至文件中:
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();//按行输入。识别回车
BufferedWriter buff = new BufferedWriter(new FileWriter("文件存入位置"));
buff.write(s);
buff.flush();
buff.close();