java 文件传输基础

信息基本编码方式

(1)gbk编码,中文2个字节,英文1个字节

(2)utf-8,中文3个字节,英文1个字节

(3)java采用双字节编码,是utf-16编码,中文2字节,英文2字节


File类

(1)只能用于访问目录或文件的信息(名称,大小),不能用于文件内容的访问

(2)基本API

file.exists();//判断文件是否存在
file.mkdir();//创建文件夹
file.delete();//删除
file.isDirectory();//目录不存在返回false
file.isFile();
file.createNewFile();//创建文件
		
System.out.println(file);//打印filetoString的内容,即路径
file.getAbsolutePath();//等价于上
file.getName();
file.getParentFile();//返回路径
file.mkdirs();//创建多级目录
(3)string dir.list()返回目录下的目录及文件的名称,不包括子目录下的;

  file[]  dir.listFiles()返回目录下的目录及文件,不包括子目录下的;

  遍历所有文件和目录则需要递归

(4)RandomAccessFile提供对文件的访问,可以读写

也支持随机访问文件,支持访问文件的任何位置

(1)文件模型:一个字节一个字节

(2)打开方式:"rw","r"    RandomAccessFile raf=new RandomAccessFile(file,"rw");

(3)写  raf.write(int)  一次只写一个字节,有个文件指针进行移动

(4)读  int b=raf.read()  读一个字节

(5)文件读写完要关闭

(5)IO流(输入输出流):分为字节流,字符流

(1)字节流

1.inputstream,outputstream

2.EOF是end

3.输入流的基本方法

int b=in.read();读一个字节,填充int低八位

in.read(byte[]b);读到字节数组

in.read(byteo[]b,int start,int size);读b到文件从s开始的size个,返回读到字节的个数

4.输出流的基本方法

out.write(int b);写b的低八位到byte

out.write(byte[]b);数组写入到流

out.write(byte[]b,int s,int size),把b中的s开始size写到流

5.InputSteam的子类FileInputStream

6.FileOutputStream

注:FileOutputStream out=new FileOutputStream("demo/raf3.dat");能自动生成output文件

7.DataOutputSteam/DataIntputStream是对”流“的扩展,更方便的操作int,long,字符等类型数据

  DateOutputSteam  writeInt()/writeDouble()/writeUTF()实质的FileOutStream中方法的包装

 (2)字符流

1.java的文本(char)是16位无符号整数,是字符的unicode双字节编码;

   文件是byte,byte...的数据序列

   文本文件是文本序列按照某种编码方式序列化为byte的存储

2.字符流(reader writer)

字节字符转换流:

InputStreamReader byte解析为char

OutputStreamWriter char流编码为byte流

文件读写流:

FileReader,FileWriter

字符流过滤器:

BufferedReader readLine,不识别换行符,一次读一行

BufferedWriter/PrintWriter 一次写一行

(6)对象的序列化

序列化就是把object转化为byte序列

1.ObjectOutputStream,是过滤流,序列流 wirteObjcect

   ObjectInputStream ,readObject

2. 序列化接口(Serializable)

注:transient关键字,不做jvm默认的序列化,但可以完成自定义的序列化


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值