-
File.separator 设置分隔符
查看全部 -
RandomAccessFile是Java提供访问文件内容的类,既可以读文件也可以写文件
RandomAccessFile支持随机访问文件,可以访问文件的任意位置
java文件模型:
在硬盘上的文件是以byte存储的,是数据的集合
打开文件
有两种模式:rw(读写) 、r(只读)
RandomAccessFile raf = new RandomAccessFile(file,打开模式);
文件指针,打开文件时指针在文件的开头pointer = 0
写方法
raf.write(int)-->只写一个字节(后8位),同时指针指向下一个位置,准备再次写入
读方式
int b =raf.read()-->一次读一个字节
文件读完后一定要关闭(Oracle官方说明)
查看全部 -
package com.xin.file; import java.io.File; import java.io.IOException; /** * File类:显示文件或者目录的信息(文件名或者目录名、文件大小) * 通过java.io.file类操作硬盘上的文件或目录,不能访问文件内容 * @author 57602 * */ public class demo { public static void main(String[] args) throws IOException { //创建一个文件对象 File file = new File("F:\\学习视频\\java基础"); //用File.separator设置分割符,不论在什么操作系统下都能识别 //File file = new File("F:"+File.separator+"学习视频"+File.separator+"java基础"); //判断目录是否存在 System.out.println(file.exists()); File file1 = new File("F:\\学习视频\\java基础\\imooc"); System.out.println(file1.exists()); //若不存在则创建该目录 if(!file1.exists()) { //创建一级目录 file1.mkdir(); //file1.mkdirs();创建多级目录 }else { //若存在则删除该目录 file1.delete(); } //创建文件 //File file2 = new File("F:\\学习视频\\java基础\\日记.txt"); File file2 = new File("F:\\学习视频\\java基础", "日记.txt"); System.out.println(file2.isDirectory()); if(!file2.exists()) { file2.createNewFile(); }else { file2.delete(); } //常用File对象的API System.out.println(file2); //获取目录 System.out.println(file2.getAbsolutePath()); //获取文件的绝对路径 System.out.println(file2.getParent()); //获取文件的父目录 System.out.println(file2.getName();//获取文件名 System.out.println(file2.getParentFile());//获取父目录 System.out.println(file2.getParentFile().getAbsolutePath());//获取父目录的绝对路径 } }
查看全部 -
文件的编码
GBK:中文占2个字节,英文占1个字节
UTF-8:中文占3个字节,英文占1个字节
//将一个字符串转换成指定编码的字节序列 byte[] bytes = str.getBytes("编码格式"); //将一个字符串转换成字节序列时没有指定编码格式则默认是当前项目的默认编码格式 byte[] bytes = str.getBytes();
java是双字节编码,其编码格式是utf-16be
byte[] bytes = str.getBytes("utf-16be");
当字节序列是某种编码时,如果要把字节序列转化成字符串,也需要通过指定编码的方式转化,否则会乱码
String str = new String(bytes,"utf-16be");
文本文件就是字节序列,可以是任意编码的字节序列,如歌在中文系统上直接创建文本文件,那么该文本文件只认识ansi编码
查看全部 -
对子类对象进行反序列化操作时,如果其父类没有实现序列化接口,那么其父类构造函数会被调用,如果实现了序列化接口,反序列化时该父类可以直接从序列化时指定的用于存储的文件里读取数据
查看全部 -
一知半解,以后回来看
查看全部 -
将读到的"字符"向"字符串"做转换.
查看全部 -
奇迹出现!
控制台直接打印出文本文件内容.
当然因为是"字符流"而不是"字节流"
查看全部 -
OutputStreamWriter 提供char流到byte流,按照编码处理<br/>查看全部
-
InputStreamReader 完成byte流解析为char流<br/>查看全部
-
"文本是byte byte byte... 的数据序列" 这里我明白byte的意思了 意思是文件就是由一个个byte组成的 也就是八位的"数据"(这里还不敢说是字符)
文本文件是文本序列.
查看全部 -
缓冲方法中的flush 是必须的.
而且读取和写入流用完后都需要关闭.
查看全部 -
FileOutputStream DataOutputStream BufferedOutputStream 三个的对比
查看全部 -
writeChars 使用JAVA默认的UTF16BE编码 写成
查看全部 -
写入流 最后加入 "flush()" 视频中说: 对字节流 flush"可写可不写"
查看全部
举报