15 | 流

1 流

  • 文件
  • 字节流
  • 字符流
  • 序列化和反序列化

2 文件

  • 把数据存入硬盘这个行为,我们把他称之为持久化;
  • 而程序的执行,是在内存当中完成的,需要把数据从硬盘读到内存当中,再来执行;
  • 文件的分类:

A、目录:目录的本质上也是一种文件
B、文件:文件是用来保存数据的主体,但是没有谁规定,文件一定要有后缀

  • 路径的正确表达方式:

A、:这种斜杠需要转义\
B、/:这个可以直接用

  • File:new 出来的对象,只是一个对象,可以new,但是并不意味着一定存在;
  • 路径操作:

A、绝对路径:从根目录往后找,叫绝对路径 ;
B、相对路径:已当前文件所在的位置,作为参照,开始寻找目标 ;
C、getPath:你给他相对路径,它就是相对路径,你给它绝对路径,那就是绝对路径 ;
D、getAbsolutePath:获取到的绝对路径,但是…是识别不了的 ;
E、getCanonicalPath:效果和getAbsolutePath类似,但是可以识别…
F、以上三种方式,只是给大家了解一个文件的路径的获取方式,我们以后,大概率不会使用这种方式获取文件路径。

  • 创建文件和目录
  • 获取文件和目录

3 文件读写

  • 读写文件需要通过IO流来读写

A、input:已当前程序为参照,从程序外往程序里读输入流
B、Output:以当前程序为参照,往外写叫输出流

  • 流的分类

A、字节流:读写的是byte
B、字符流:读写的是char

  • 流的进一步分类

A、流
B、缓冲流:带缓冲的流

  • 字节输出流

A、可以一个字节一个字节的往外写
B、需要首先获取数据的字节码
C、输出流是覆盖,不是追加

  • 字节输入流

A:可以一个字节一个字节的读
B:读的字节,不会超过byte的长度
C、读字节对文件大小没有限制

  • 字节流的缓冲流

A、默认缓冲区大小是8192B
B、只要是缓冲流,必须调用flush,一般来说针对输出流

  • 字符流

A、字符输入流
1)字符流读取,不可以直接使用input string的读取长度,因为我们读取的是char类型

B、字符输出流
1)一个字符由若干字节组成,所以自带缓冲区,需要调用flush
C、缓冲字符流
1)输出流:因为有非常优秀的缓冲区,所以不需要考虑一个字符一个字符往外写,直接写,交给缓冲区处理,缓冲区大小:8192个char(int)
2) 输入流:可以一行一行的读

  • 二进制流

A、作用,是读写数据
B、读和写的顺序需要保持一致

  • 序列化和反序列化

A、序列化:把内在中的对象,变为二进制的字节流输出 B、反序列化:把二进制流的输入,变为对象
C、序列化的第一步:是需要指定对象为可序列化对象,以及该类的所有类成员都必须可序列化对象
D、序列化的版本ID,在序列化和反序列化时必须保持一致

  • JDK自带的序列化和反序列化,效果不佳,在真正的大型分布式项目当中,一般使用例如:(hession(jboss))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,无法直接回答该问题。但是,可以提供一些相关的信息来帮助你更好地理解如何通过Java进行POST登录并获取重定向URL。 一般来说,通过Java进行POST登录需要使用Java的HttpURLConnection类或Apache的HttpClient库。具体步骤如下: 1. 创建一个URL对象,该对象包含登录页面的URL。 2. 使用URL.openConnection()方法创建一个HttpURLConnection对象。 3. 设置请求方法为POST,设置请求头信息,例如Content-Type和User-Agent。 4. 创建一个输出,将POST参数写入该中。 5. 使用HttpURLConnection.getOutputStream()方法获取输出,并将POST参数写入该中。 6. 使用HttpURLConnection.getInputStream()方法获取输入,并读取响应数据。 7. 解析响应数据,获取重定向URL。 下面是一个简单的Java代码示例,演示如何通过POST登录并获取重定向URL: ```java import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class HttpPostExample { public static void main(String[] args) throws Exception { String url = "http://example.com/login"; String postData = "username=myusername&password=mypassword"; URL obj = new URL(url); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); // 设置请求方法为POST con.setRequestMethod("POST"); // 设置请求头信息 con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); con.setRequestProperty("User-Agent", "Mozilla/5.0"); // 发送POST参数 con.setDoOutput(true); DataOutputStream wr = new DataOutputStream(con.getOutputStream()); wr.writeBytes(postData); wr.flush(); wr.close(); // 获取响应数据 BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); // 解析响应数据,获取重定向URL String redirectUrl = response.toString().split("\\|")[6]; System.out.println("Redirect URL: " + redirectUrl); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值