一、Java常用包
1、java.lang. Java编程的基础包 (String,StringBuffer,StringBuild,Math、Object、线程,异常等类)
2、java.util. Java工具包(日期,数组,集合,枚举,各种工具类)
3、java.io. 该包通过文件系统、数据流和序列化提供系统的输入与输出
4、java.net. 跟网络编程有关的包(socket网络编程包)
5、java.sql. 放置的是跟数据库进行交互的类
6、java.awt.和 java.swing. 这是Java提供的图形界面包
7、java.text. 放置的是自然语言无关的方式来处理文本、日期、数字和消息的类和接口
8、javax. 其他商业公司的扩展包
二、字节流
这种流都是以字节为单位进行数据处理
所有的字节流都继承至:InputStream、OutputStream

字节流,绝大多数情况都是用来处理“二进制文件”,当然也可以用来处理“文本文件”
计算机中,只认识“二进制”,不管是“二进制文件”,还是“文本文件”。它们的区别只在于表现形式不一样而已
2.1 低级字节流
1、专门用来读取文件的FileInputStream,FileOutputStream
2、专门用来读取内存空间的字节数组的 ByteArrayInputStream, ByteArrayOuntputStream
3、专门用来读取其他线程传输过来的字节流 PipedInputStream 和PipedOutputStream
2.1.1 文件输入流 FileInputStream (*)
FileInputStream 是文件输入流,该流属于 低级字节流 因为它直接面向文件
FileInputStream的使用
使用场景:文件上传
package com.woniuxy.java18.study.low;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.util.Arrays;/*** 文件输入流(低级流) 直接操作文件** @author Administrator**/public class FileInputStreamStudy {public static void main(String[] args) {// TODO Auto-generated method stub// firstInputMethod();secondInputMethod();}/*** 一批一批的读* 相比于第一种读取 ,有一定的性能提升*/private static void secondInputMethod() {// TODO Auto-generated method stub// 定义文件的路径,并交给文件对象String path = "D:\\movie\\japan\\db\\jz.txt";File file = new File(path);// 定义一个文件输入流FileInputStream fis = null;try {fis = new FileInputStream(file);//读取文件的内容byte[] data = new byte[1024];while(fis.read(data) != -1) {//输出读取回来的内容System.out.println(Arrays.toString(data));}} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally {try {fis.close();//关闭流} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}/*** 一个字节一个字节的读*/private static void firstInputMethod() {// TODO Auto-generated method stub// 定义文件的路径,并交给文件对象String path = "D:\\movie\\japan\\db\\jz.txt";File file = new File(path);// 定义一个文件输入流FileInputStream fis = null;try {// 给流定义 实例fis = new FileInputStream(file);// 通过流,读取文件的内容到内存中来// 代表读取的内容int content = 0;while ((content = fis.read()) != -1) {// 输出(0-255)的值System.out.println(content);}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {// 关闭流try {fis.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
2.1.2 文件输出流FileOutputStream (*)
使用场景:文件下载
当然它也是低级字节流,它的作用是:将程序内部的资源 写入到外部文件中去
FileOutputStream的用法
package com.woniuxy.java18.study.low;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;public class FileOutPutStreamStudy {public static void main(String[] args) {// TODO Auto-generated method stub// firstWriteMethod();secondWriteMethod();}/*** 一批一批的写*/private static void secondWriteMethod() {// TODO Auto-generated method stubString path = "D:\\movie\\japan\\dj\\xzm.txt";File file = new File(path);//定义输出流FileOutputStream fos = null;try {//存不存在if(!file.exists()) {file.createNewFile();}//实例化输出流fos = new FileOutputStream(file);String str = "你老了,可以退休,因为没人看了!!!!!";byte[] data = str.getBytes("UTF-8");//向文件中一次型写入内容fos.write(data);} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally {try {fos.close();//关闭流} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}/*** 一个字节一个字节的写*/private static void firstWriteMethod() {// TODO Auto-generated method stubString path = "D:\\movie\\japan\\dj\\bdy.txt";File file = new File(path);//定义输出流FileOutputStream fos = null;try {//存不存在if(!file.exists()) {file.createNewFile();}//实例化输出流fos = new FileOutputStream(file);String str = "这是今年最好的一部电影!!!";byte[] data = str.getBytes("UTF-8");for (byte c : data) {//操作流fos.write(c);}} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally {try {fos.close();//关闭流} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
