IO的基础学习笔记
IO的两大分类:字节流与字符流:
字节流(以Stream结尾)
其中又有两大接口:InputStream
与 OutputStream
接口。
字节流能输入,输出任意类型的文件:文本文件,图片,视频等。
接下来展示其中访问图片的代码:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class TextIOStream {
public static void main(String[] args) {
FileOutputStream fo = null;
FileInputStream fi = null;
try{
//创建输入流与输出流的对象
fi = new FileInputStream("E:\\TextIO\\TextIO1\\textpicture.bmp");
fo = new FileOutputStream("E:\\TextIO\\TextIO1\\textpicture2.0.bmp");
数据的读入和写出操作
byte[] buffer = new byte[20];
int len;
while ((len = fi.read(buffer)) != -1){
fo.write(buffer,0,len);
}
}catch (Exception e){
e.printStackTrace();
}finally {
try{
if(fo != null){
fo.close();//关闭流资源
}
}catch (IOException e){
e.printStackTrace();
}
try {
if(fi != null){
fi.close();
}
}catch (IOException e){
e.printStackTrace();
}
}
}
}
字符流(以Reader与Writer结尾)
仅能传输.txt
文件
感觉没啥好说的其实操作跟字符流差不多
还是展示一下代码:
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class TextIOReaderWriter {
public static void main(String[] args) throws IOException {
FileReader fr = null;
FileWriter fw = null;
try {
File srcFile = new File("E:\\TextIO\\TextIO2\\TextIO3.txt");
File destFile = new File("E:\\TextIO\\TextIO2\\TextIO8.txt");
fr = new FileReader(srcFile);
fw = new FileWriter(destFile);
char[] cbuf = new char[5];
int len;
while((len = fr.read(cbuf))!= -1){
fw.write(cbuf,0,len);
System.out.println(cbuf);
}
}catch (Exception e){
e.printStackTrace();
}finally {
try{
if (fw != null){
fw.close();
}
}catch (IOException e){
e.printStackTrace();
}finally {
try{
if(fr != null){
fr.close();
}
}catch (IOException e){
e.printStackTrace();
}
}
}
}
}
最后说一下File
类
File对象可以通过绝对路径相对路径(以String形式)
import java.io.*;
public class TextFile {
public static void main(String[] args) throws FileNotFoundException {
File file = new File("E:\\text.txt");//通过绝对路径构造File类
File file1 = new File("E:\\TextIO\\TextIO2\\TextIO3.txt");
File file2 = new File("E:\\TextIO\\TextIO2\\TextIO5");
File file3 = new File("E:\\TextIO");
//FileOutputStream fileOut =new FileOutputStream(file1);
try{
if(file.exists()) {
file.createNewFile();//若文件不存在则创建该文件(空文件)
}
if(!file1.exists()) {
file1.createNewFile();
}
if(!file2.exists()){
file2.mkdirs();
}
System.out.println(file.getPath());//该文件的绝对路径
System.out.println(file.getName());//该文件名称
System.out.println(file.length());//该文件的大小
String[] name = file3.list();//为该文件夹下的所有文件名
System.out.println(name[0]);
/*file.delete();//删除该文件
file1.delete();
file2.delete();*/
}catch(Exception e){
e.printStackTrace();
}
}
}
1.delete();
file2.delete();*/
}catch(Exception e){
e.printStackTrace();
}
}
}