java.io(输入/输出、读/写文件)

File -> 内存对象,表示文件/目录,和本地有没有这个文件/目录没关系

1.对文件进行[随机]读写的类,不算IO,IO都是单向的

RandomAccessFile - 可读可写 - 使用场景:文件复制/文件加密


  • write * 3
    write(b) -> 写入指定int值的低八位,单字节
    write(bs) -> 写入指定的byte数组的全部字节
    write(bs, offset, len) -> 截取一部分字节写入
    write 8种基本数据类型

写入到文件中的是字节,看到文件内容的是字符
字节转换成字符需要编码


  • read * 3 -> 返回-1表示读到文件末尾
    int read() -> 读1个字节,并存入到int类型的低八位,返回读取出来的字节数
    int read(bs) -> 读bs.length个字节,并且存入到bs中
    int read(bs, off, len) -> 读len个字节,并且在bs中off位置开始存入,返回读取出来的有效字节个数
    read 8种基本数据类型

2.字节流

InputStream / OutputStream
FileInputStream(file)
FileOutputStream(file, boolean) -> true/false:指定是否追加
缓冲流:
缓冲区:添加缓冲区的目的就是为了提高效率
访问磁盘空间,和访问缓存(内存),访问内存效率更高

访问磁盘空间:
文件读写
访问数据库
B/S:浏览器/服务器 C/S:客户端/服务器

    BufferedReader(Reader(InputStream(file)))
  		readLine();
  	PrintWriter(Writer(OutputStream(file)))
  	PrintWriter(OutputStream(file))
  	PrintWriter(file)
  		print()
  		println()

字节缓冲流: 以字节为单位
BufferedInputStream
BufferedOutputStream

缓冲流是通过节点流包装出来的

字节流: 字节为单位,不是用来读写可视内容,通常用来复制文件,又因为缓冲流效率高,所以复制文件用缓冲流
底层流就是用来生成其它高级流的

字符流: 单位是字符 - 有字符集 默认字符集/指定字符集
Reader / Writer

InputStreamReader(InputStream, charset)
int read() - 读单个字符
int read(char[]) - 返回读取的有效个数,读出来的字符存入字符数组中
int read(char[], off, len) -
返回读取的有效个数,读出来的字符存入数组从off位置开始
OutputStreamWriter(OutputStream, charset)
write(int) - 写单个字符
write(char[]) - 写字符数组
write(char[], off, len) - 写字符数组一部分

flush()/close()

对象流
ObjectInputStream
ObjectOutputStream

3.总结

文件复制:
BufferedInputStream(FileInputStream)
BufferedOutputStream(FileOutputStream)
int read() -> 读单个字节
int read(byte[] bs) -> 读bs.length个字节
int read(byte[], off, len)
write(int) -> 写单个字节
write(byte[]) -> 写入数组字节
write(byte[], off, len)

文件内容读写:
BufferedReader(InputStreamReader(字节流))
String readLine() -> 读取一整行,返回null末尾
PrintWriter(OutputStreamWriter(字节流))
指定文件是否追加写入、指定字符集、指定是否自动刷新
print()
println()

对象读写:
ObjectInputStream(字节流)
readObject()
ObjectOutputStream(字节流)
writeObject(obj)
对象 -> 字节:序列化
对象必须是可序列化的Serializable

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是对每行代码的注释: ```java import java.awt.Color; //导入java.awt.Color类,用于设置颜色 import java.awt.Container; //导入java.awt.Container类,用于管理组件 import java.awt.Label; //导正点原子高速无线调试器的接线方式如下: 1. 首先,将无线调试器入java.awt.Label类,用于显示文本标签 import java.awt.TextArea; //导入java.awt.TextArea类,的天线连接到调试目标电路板上的天线接口。确保天线接口与无线调用于显示多行文本 import java.awt.event.ActionEvent; //导入java.awt.event.ActionEvent类,用于处理动作事件试器天线的接口类型匹配。 2. 将无线调试器的串口引脚(TX、RX、 import java.awt.event.ActionListener; //导入java.awt.event.ActionListener接口,用于监听动作事件 import java.awt.event.WindowGND)连接到调试目标电路板上的对应串口引脚。一般情况下,TX(Adapter; //导入java.awt.event.WindowAdapter类,用于处理窗口事件 import java.awt.event.WindowEvent; //导入发送)连接到目标电路板的RX(接收),RX(接收)连接到目标电路板的TXjava.awt.event.WindowEvent类,用于表示窗口事件 import java.io.BufferedWriter; //导入java.io.BufferedWriter类,用于写入数据到文件 import java.io.File; //导入java.io.File类,用于表示文件 import java.io.FileWriter; //导入java.io.FileWriter类,用于写入文件 import java.io.IOException; //导入java.io.IOException类,用于处理输入输出异常 import java.net.InetAddress; //导入java.net.InetAddress类,用于表示网络地址 import(发送),GND(地)连接到目标电路板的GND(地)。 3. 确保目标电 java.net.UnknownHostException; //导入java.net.UnknownHostException类,用于处理未知的主机异常 import java.util.concurrent.Executor路板的电源供应正常,并将无线调试器的电源引脚(VCC、GND)连接到目标电路板的电源引脚。确保电压和电流符合无线调试器的要求。 4. 如果有其他需要连接的引脚(如复位引脚、引导引脚等),按照无线调试器的说明文档进行连接。 请注意,在接线之前,务必详细阅正点原子高速无线调试器的说明文档,了解具体的接线要求和步骤。如果有任何疑问Service; //导入java.util.concurrent.ExecutorService接口,用于执行多线程任务 import java.util.concurrent.Executors; //,请咨询正点原子的技术支持或参考相关的技术论坛。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值