-
1.对象序列化,就是将Object转换成byte序列,反之叫对象的反序列化 2.序列化流(OjectOutputStream)是过滤流----writeObject 反序列化流(ObjectInputStream)----readObject 3.序列化借口(Serializable) 对象必须实现序列化接口,才能进行序列化,否则将出现异常 这个接口,没有任何方法,只是一个标准 对象实体类的序列化与反序列化 public static void main(String[] args) throws IOException, Exception { String file = "F:/IO流/序列化/test.txt"; // 1.对象的序列化 /*ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream( file)); Student stu = new Student("10011", "张三 ", 20); oos.writeObject(stu); oos.flush(); oos.close();*/ // 2.反序列化 ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file)); Student stu2 = (Student) ois.readObject(); System.out.println(stu2); ois.close(); }查看全部
-
4-1 IO流(输入流、输出流) 字节流、 字符流 1.字节流 1)InputStream、OutputStream InputStream 抽象了应用程序读取数据的方式 OutputStream抽象了应用程序写出数据的方式 2)EOF = End 读到-1就读到结尾 3)输入流基本方法 int b = in.read(); 读取一个字节无符号填充到int低八位.-1是EOF in.read(byte[] buf) 读取数组填充到字符数组 in.read(byte[] buf, int start,int size) 读取数据到字节数组buf,从buf的start位置开始存放size长度的数据 键盘的输入相当于读取. 4)输出流基本方法 out.write(int b) 写出一个byte到流, b的低8位 out.write(byte[] buf) 将buf字节数组都写入到流 out.write(byte[] buf, int start, int size) 5)FileInputStream --> 具体实现了在文件上读取数据查看全部
-
3-1 RandomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件。 RandomAccessFile 支持随机访问文件,可以访问文件的任何位置 (1)Java文件模型 在硬盘的文件是 byte byte byte存储的,是数据的集合 (2)打开文件有两种模式 “rw”(读写) 和“r”(只读) RandomAccessFile raf = new RandomAccessFile(file, "rw") 文件指针,打开文件时指针在开头 pointer = 0; (3)写方法 raf.write(int) -->只写一个字节(后8位),同时指针指向下一个位置,准备再次写入 (4)读方法 int b = raf.read() --> 只读一个字节 (5)文件读写完成之后一定要关闭,避免出现一些异常情况查看全部
-
2-2 遍历目录: public class listFile { public static void listAllFile(File dir) { if (!dir.exists()) { throw new IllegalArgumentException("目录" + dir + "不存在"); } if (!dir.isDirectory()) { throw new IllegalArgumentException(dir + "不是目录"); } // String[] filename = dir.list(); //返回字符串数组,直接显示的是名字,不包括子目录下面的内容. // for(String filename1 : filename) // { // System.out.println(dir+"\\" +filename1); //加上dir可以拿到目錄 // } // // File[] files = dir.listFiles(); //跟上面加dir的作用是一样的,可以获得路径 if (files != null && files.length > 0) { for (File file : files) { if (file.isDirectory()) { listAllFile(file); //如果还是目录就调用递归,找其下面的子目录 } else { System.out.println(file); } } } } } public class testFile { public static void main(String[] args) { // TODO Auto-generated method stub //静态方法,直接通过类名访问,因为参数是File类型,因此只能传“new File("C:\\PAMB\\Javatest")”, 不能直接传字符串“C:\\PAMB\\Javatest”. listFile.listAllFile(new File("C:\\PAMB\\Javatest")); } }查看全部
-
这是最快的复制方法查看全部
-
2-1 Java.io.File类用于表示文件(目录) File类只用于表示文件(目录)的信息(名称、大小),不能用于文件内容的访问和修改 File file1 = new File("C:\\Users\\minghua.li\\eclipse-workspace\\file"); //要用双斜杠\\,因为要用转义字符. File file2 = new File("c:" + File.separator); //可以是任意分隔符 if(!file1.exists()) { file1.mkdir(); //只能创建单级目录 file1.mkdirs(); //可以创建多级目录,不管是否存在父目录 } else { file1.delete(); } System.out.println(file1.isDirectory());//如果是目录就返回true,如果不是目录或者目录不存在就返回false. System.out.println(file1.isFile()); //判断是不是文件 //File file3 = new File("C:\\Users\\minghua.li\\eclipse-workspace\\file\\日志.txt"); //直接添加文件 File file3 = new File("C:\\Users\\minghua.li\\eclipse-workspace\\file", "日志.txt"); // 按照路径,加文件的名的形式添加 if(!file3.exists()) { try { file3.createNewFile(); //create新的文件,但是要捕获异常 } catch (Exception e) { } } else { file3.delete(); } System.out.println(file3.getName()); //获取文件名字查看全部
-
IO流查看全部
-
输入流、输出流基本方法查看全部
-
RandomAccessFile类说明查看全部
-
https://mp.weixin.qq.com/s/TpHxOmkpngtBOLxtxKV9YA 学完自己总结的笔记查看全部
-
字符流 1)编码问题 2)认识文本和文本文件 java的文本(char)是16位无符号整数,是字符的unicode编码(双字节编码) 文件是byte byte byte ...的数据序列 文本文件是文件(char)序列按照某种编码方案(utf-8,utf-16be,gbk)序列化为byte的存储结构 3)字符流(Reader Writer) -->操作的是文本 文本文件 字符的处理,一次处理一个字符 字符的底层任然是基本的字节序列 字符流的基本实现 InputStreamReader 完成byte流解析为char流,按照编码解析 OutputStreamWriter 提供char流到byte流,按照编码处理 FileReader/FileWriter 字符流的过滤器 BufferedReader -->readLine 一次读一行 BufferedWriter/PrintWriter 一次写一行查看全部
-
IO流(输入流、输出流) 字节流、字符流 1.字节流 1)InputStream、OutputStream InputStream抽象了应用程序读取数据的方式 OutputStream抽象了应用程序写出数据的方式 2)EOF = End 读到-1就都到了结尾 3)输入流基本方法 int b = in.read();读取一个字节无符号填充到int低八位.-1是 EOF in.read(byte[] buf) 读取数据填充到字节数组buf in.read(byte[] buf,int start,int size);读书数据到字节数组buf 从buf的start位置开始 存放size长度的数据 4)输出流基本方法 out.write(int b) 写出一个byte到流,b的低八位 out.write(byte[] buf)将buf字节数组到写入到流 out.write(byte[] buf,int start,int size)字节数组buf从start位置开始写size长度的字节到流 5)FileInputStream -->具体实现了在文件上读取数据 6)FileOutputStream 实现了向文件中写出byte数据的方法 7)DataOutputStream/DataInputStream 对流功能的扩展,可以更加方便的读取int long字符等类型数据 DataOutputStream writeInt()/writeDouble()/writeUTF() 8)BufferedInputStream&BufferedOutputStream 这两个流类为IO提供了带缓冲区的操作,一般打开文件进行写入或读取操作时,都会加上缓冲,这种流模式提高了IO的性能查看全部
-
File: list()方法返回的是字符串数组 直接子的名称 listFiles()返回的是直接子目录(文件)的抽象查看全部
-
bufferedOutputStream 提升了读的性能查看全部
-
0xf代表单字节查看全部
举报
0/150
提交
取消