黑马程序员——Java基础--- I/O输入输出流

本文详细介绍了Java中I/O流的基本概念、输入输出流的使用方法、File类的操作、文件读写流程以及如何使用缓冲流和数据输入输出流进行高效数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

1.流是一组有序的数据序列,分输入流/输出流,这些类都放在java.io包
输入流(父类InputStream,Reader)一般提供方法(并不是所有的子类中都支持其下的方法)
read()输入流中读取数据的下一个字节返回0-255int字节值,read(byte[] b)返回字节值,mark(int readlimit)当前到readlimit参数之前的字节数,reset()输入指针返回到当前的标记处,skip(long n)跳过n个字节,返回实际跳过的字节数,markSupported()流支持mark和reset操作返回true,close()关闭输入流
输出流(父类OutputStream,Writer)提供的方法类似上面
write(byte[],int off,int len),flush(0,close()
2.File类,io包中唯一代表磁盘文件本身的对象,可实现创建,删除,重命名文件等,可获得文件的一些属性
文件创建 File file=new File("d:/1.txt")/("d:/doc","2.txt")/(D:/doc/,"3.txt");
文件删除 file.delete()
文件信息获取 getname(),canRead(),canWrite(),exits(),length()文件长度,getAbsolutePath()绝对路径,getParent()父路径,isFile()文件是否存在,isDirectory(),isHidden(),lastModified()
3.文件输入输出
FileInputStream(String name/File file) 从文件中读出内容,FileOutputStream()向文件中写入数据,用法一样,且此类用法不能指一个打开文件(这两个类只提供对字节或字节数组的读取方法)
FileReader(),和FileWriter()是字节流的读取,FileReader流顺序的读取文件,只要不关闭流,read()将读到源的末尾或关闭
4.带缓存的输入输出流(缓存是I/O的一种性能优化,可使用skp(),mark(),reset()等方法)
BufferedInputStream(InputStream in,int size)size可省略,省略时是一个32字节的缓存流,BufferedOutputStream()的用法类似,只是有一个flush()方法可以将缓存中的数据强制输出完,类似刷新
ButteredReader和ButteredWriter还可以行为单位输入输出,ButteredReader提供的方法read(),readLine(),ButteredWriter()提供方法为,write(String s,int off,int len),flush(),newLine(),返回void型
5.数据输入与输出流(不再关心数值应当是什么字节)
DateInputStream(InputStream in)方法readUTF()
DateOutputStream(OutputStream Out),writeBytes(String s),writeChars(String s),writeUTF(String s)
6.ZIP压缩输入输出(需要找到目录进入点)
zip压缩文件结构:一个zip文件由多个entry组成,每个entry有一个唯一的名称,entry的数据项存储压缩数据。
压缩ZipOutputStream(OutputStream out);常用方法putNextEntry(ZipEntry e),write(byte[] b,int off,int len),finish(),setComment(String comment),
解压ZipInputStream(InputStream in)常用方法read(byte[] b,int off.int len),avivable(),closeEntry(),skip(long n),getNextEntry(),createZipEntry(String name)

"黑马程序员Java6-3模拟用户注册"这个题目可能是Java学习课程中的一部分,用于教学如何设计简单的用户注册系统。它可能会涉及到几个关键步骤: 1. **数据结构**:首先,你需要设计一个User类,包含属性如用户名(username)、密码(password)以及可能的其他个人信息。 ```java public class User { private String username; private String password; // 其他属性... } ``` 2. **验证功能**:创建方法检查输入的数据是否有效,比如检查用户名是否唯一,密码是否满足复杂度要求。 3. **注册过程**:创建一个注册函数,接受用户输入的信息,并将它们实例化到User对象中。可能还需要连接到数据库(模拟或实际的)来存储用户的注册信息。 ```java void register(String username, String password) { if (isValidUsername(username) && isValidPassword(password)) { User newUser = new User(); newUser.setUsername(username); newUser.setPassword(password); // 模拟数据库操作,这里可以添加到一个ArrayList或者HashMap中 users.add(newUser); } else { System.out.println("注册失败..."); } } // 验证函数示例 private boolean isValidUsername(String username) { // 判断逻辑... } ``` 4. **错误处理**:处理可能出现的各种异常情况,例如网络错误、数据库连接问题等。 这只是一个基础的模拟,实际应用中会更复杂,包括安全措施(如哈希密码)、并发控制(如线程同步)等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值