1.File :既可以表示 目录 又可以表示文件
- exists():用于判断目录或文件是否存在
- mkdir():用于创建一个目录
- mkairs():用于创建一组目录
- createNewFile():用于创建一个文件
- length();获取文本文件中的字节数;可以计算操作的百分比;
- isFile():判断文件对象是否是文本文件;
- isDirectory():判断文件对象是否是目录
- delete():删除文件
- String[] list();获取目录下所有文件的名称
- File[] listFile();获取目录下所有文件的对象
2.通过输入输出流操作文本文件
a)分类
i)流向:输入流
输出流
ii)操作的单位 字节流:用于操作,压缩包,图片,音频视频
字符流;文本文件
iii)功能
节点流
处理流(包装\转换)
单文件读取
批量删除(格式化)
写数据
输入流
InputStream
FileInputStream
int read(byte[] b);每一从文件中读取多少个字节的数据,返回值,是读取的字节数
如果返回值 为 -1 表示没有读到数据
close(); 关闭输入流
输出流:
OutputStream
FileOutputStream
write(byte[] b); 把一个字节数组的内容写入到 文件中
close();如果不关闭,文件处于占用状态
flush();刷,缓冲区 的内容强制写到 文件中 ,可以减少内存的占用
当文件操作时,内存小于文件的大小时 每操作一定数据量时必须 强制 flush()
c)构建字节流对象的方法
输入流
FileInputStream(File f)
FileInputStream(String path)
输出流
FileOutputStream(File f)
FileOutputStream(File f,boolean append):append 为 true 表示 在文件的末尾添加
append 为 false 表示 覆盖文件的内容
FileInputStream(String path)
FileInputStream(String path,boolean append)
d)处理的异常
输入流:如果文件不存在 之间发生异常
FileNotFoundException
IOException
输出流:如果文件不存在,会自动创建;如果目录不存在,发生异常
FileNotFoundException 目录不存在
IOException
3.字符流:以字符为单位,每一次都是操作字符
输入流:
Reader
输出流
Writer
4.接口:抽象方法和常量的一个组合,它表示一种能力或一种规范
是java中单一继承的一个补充
a)分类:
i)标识接口,其中没有任何方法和属性
例如 java.io.Serializable
作用:就是为了实现多态
ii)功能性接口: 提供抽象方法的接口
1)单功能接口
2)多功能接口
iii)常量接口:只存放常量值,接口是存放常量的最佳场所
-----------------------------------------------------------------------
1.了解io流的分类
a.流向:
输入
输出
b.功能
节点流
处理流
c.操作的对象
字节流
字符流
2.File :既可以指目录也可以指文件
3.文件复制:(文件上传) java.nio.file.Files;
Files.copy(Paths.get("源"),Paths.get("目标"));
4.记住常用的流类型
字节流
InputStream
FileInputStream
OutputStream
FileOutputStream
字符流
Reader
FileReader
Writer
FileWriter
缓冲流:使用Buffer缓冲区
5.读写文件:
读文件:
InputStream in=new FileInputStream("文件的位置");
byte[] b=new byte[1024];
int len=in.read(b);
while(len!=-1){
//
String str=new String(b,0,len);
len=in.read(b);
}
in.close();
写文件:
OutputStream out=new FileOutputStream("文件的位置",true);
byte[] b="".getBytes();
out.write(b);
out.close();
-----------------------------------------------------------------------------
1.读取文件中的内容把其中所有的字母a替换为 * 后保存
2.程序运行时,可以每天创建一个当天日期文件夹和文件
将来文件上传的时候 每一天创建一个目录
Date date=new Date();
SimpleDateFormat f=new SimpleDateFormat("yyyyMMdd");
String name=f.format(date);
String path="d:\\"+name;
File f=new File(path);
if(!f.exists()){
f.mkdir();
}
File file=new File(f,name+".txt");//20180522.txt
if(!file.exists()){
file.createNewFile();
}
字符流
、字符流
path:接口 对应的硬盘中的路径,就是File
paths 终态的工具类,就是把一个String 类型的路径 转换为path 的对象
、文件上传
try { Path xxx =paths.get("xx");
path xxxx=paths.get("xxx");
Files.copy(xxx,xxxx)
}catch(Exception ex){
}
每次更新时间,创建一个文件;
-----------------------------------------------------------
0523
1.excel的读写
使用的Appach 提供的 POI
xls 表示低版本 使用HSSFXxxx 相关的类处理
xlsx 表示高版本 使用XSSFXxxx 相关的类处理
Excel文件是由 工作簿---包含---sheet页---行-----包含---列---包含----数据
public static void main(String[] args) { //创建一个工作簿 HSSFWorkbook wb=new HSSFWorkbook(); //创建sheet页 HSSFSheet sheet=wb.createSheet("图书信息"); //在Sheet 页中创建行 HSSFRow r=sheet.createRow(0); //在行中创建列 HSSFCell cell=r.createCell(0); cell.setCellValue("编号"); cell=r.createCell(1); cell.setCellValue("姓名"); cell=r.createCell(2); cell.setCellValue("电话"); File file=new File("d:\\neuedu\\学生.xls"); try { OutputStream out=new FileOutputStream(file); wb.write(out); } catch (Exception e) { e.printStackTrace(); } } }
读取Excel文件是 由 工作簿---包含---sheet页---行-----包含---列---包含----数据
String file="d:\\neu\\test.xls"; InputStream in=new FileInputStream(file); read(in); } public static void read(InputStream in){ try { HSSFWorkbook wb=new HSSFWorkbook(in); //获取第一个Sheet的数据 HSSFSheet sheet=wb.getSheetAt(0); 获取sheet中的行数 int rowNums=sheet.getPhysicalNumberOfRows(); //获取第一行中的列数,代表了该sheet页中每一行的最大列数 int CellNums=sheet.getPhysicalNumberOfRows(); //遍历除了第一行以外的其他行数据 for (int i = 1; i <rowNums ; i++) { //获取i 对应的每一行 HSSFRow row=sheet.getRow(i); //获取改行的列数 //该方法获取的最后一个有数据的列为准 //列标题所在行中 列数 是 该sheet 页中 列数最多的行 for (int j = 0; j <CellNums ; j++) { String value=""; HSSFCell cell=row.getCell(j); if(cell==null){//表示该列中有数据 value=" "; }else {//说名列中有数据 //获取每一列中的数据 value=cell.toString(); } System.out.print(value+"\t"); } System.out.println(); } } catch (IOException e) { e.printStackTrace(); } } }