Java IO流
Posted 菜菜小谭
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java IO流相关的知识,希望对你有一定的参考价值。
**************************第13章 IO**********************************
一. 什么是IO
I Input 输入
O Output 输出
I/O 输入输出流
输入输出是相对于 程序 而言的
输入: 数据从外界(文件或者其他数据源) 进入到程序,叫做输入..
输出: 数据从程序 流向 外界(文件或者其他数据源),叫做输出
这一章主要研究数据的位置的转移
二.why where
1. 搜狐新闻
程序员把每天采集好的新闻 从txt中读到程序员,然后显示到网页中或app客户端上
2. blog
照片的上传或删除
本地--------->服务器
三. how
数据源: 数据的来源,常见的数据源 文件、数据库、网络中、其他程序中
****************************文件的CRUD操作********************************
**********************一.新建一个文件(Create 增加)**************************
package com.chapter13.file;
import java.io.File;
import java.io.IOException;
/**
* 公司:蓝桥软件学院
* 作者:zhangzy
* 时间:2017年7月21日 上午9:26:34
* 功能:演示创建文件
*/
public class TestCreateFile {
public static void main(String[] args) {
//二.创建文件夹
//File类不仅代表文件也代表文件夹
File fileDirectory = new File("d:\jidi15\aaa");
//mkdir 只能创建一级目录
//mkdirs 可以创建多级目录
boolean directoryFlag = fileDirectory.mkdirs();
System.out.println(directoryFlag);
//一.新建文件
File file = new File("d:\jidi15\HelloWorld.txt");
boolean flag;
try {
//如果指定文件夹下没有该文件 会创建该文件
//如果已经存在了这个文件 不会再创建
flag = file.createNewFile();
if(flag){
System.out.println("文件创建成功");
}else{
System.out.println("没有创建任何文件");
}
} catch (IOException e) {
System.out.println("文件夹不存在");
e.printStackTrace();
}
}
}
**********************************删除文件***************************************
package com.chapter13.file;
import java.io.File;
/**
* 公司:蓝桥软件学院
* 作者:zhangzy
* 时间:2017年7月21日 上午10:05:04
* 功能:演示文件的删除
*/
public class TestFileDelete {
public static void main(String[] args) {
File file = new File("D:\jidi16\io");
if(file.exists()){
boolean flag = file.delete();
if(flag){
System.out.println("删除成功");
}else{
//当删除文件夹的时候 文件夹下有东西 会删除失败
System.out.println("删除失败");
}
}else{
System.out.println("文件不存在");
}
}
}
**********************************path分隔符和路径分隔符***************************************
一.path分隔符
windows ;
linux :
二.路径分隔符
windows D:jidi16\
linux /
/usr
/root
判断系统的小技巧,针对不同的系统写不同的代码
if(";".equals(File.pathSeperator)){ //
//上传到d:jidi16
}else if(":".equals(File.pathSeperator)){//linux
//usr
}
演示代码:
package com.chapter13.file;
import java.io.File;
public class TestSeparator {
public static void main(String[] args) {
//可以通过File.pathSeparator 判断操作系统的类型 根据结果 写不同的代码
// (Windows上为; Linux上为:)
System.out.println("path分隔符:(String类型)" + File.pathSeparator);
// (Windows上为;Linux上为:)
System.out.println("path分隔符:(char类型)" + File.pathSeparatorChar);
// (Windows上为 Linux上为/)
System.out.println("路径层次分隔符:(String类型)" + File.separator);
// (Windows上为 Linux上为/)
System.out.println("路径层次分隔符:(char类型)" +File.separatorChar);
}
}
**************************绝对路径和相对路径**********************************
绝对路径: 以盘符开头的路径 d:\jidi16\Hello.txt
相对路径 不以盘符开头的 ioHello.txt 路径不确定
**************************文件的常用方法**********************************
演示代码:
package com.chapter13.file;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 公司:蓝桥软件学院
* 作者:zhangzy
* 时间:2017年7月21日 上午10:47:44
* 功能:演示文件的常用方法
*/
public class TestFileMethod {
public static void main(String[] args) throws IOException{
//盘符 c:\ 开头的 叫绝对路径
//相对路径 不以路径分隔符 \ 开头的 相对于当前工程 相对于JiDi16这个文件夹
File fileDirection = new File("IO\aaa");
boolean fDirectionFlag = fileDirection.mkdirs();
if(fDirectionFlag){
System.out.println("创建目录成功");
}else{
System.out.println("创建目录失败");
}
File f = new File("IO\aaa\HelloIO.txt");
boolean flag = f.createNewFile();
if(flag){
System.out.println("创建文件成功");
}else{
System.out.println("创建文件失败");
}
System.out.println("文件名: " + f.getName());//返回文件名 HelloIO.txt
System.out.println("文件所在目录名 " + f.getParent());//返回文件所在目录名 IOaaa
System.out.println("相对路径: " + f.getPath());//返回相对路径 IOaaaHelloIO.txt
System.out.println("绝对路径: " + f.getAbsolutePath());//返回绝对路径 C:huanghuaiWorkSpaceHuangHuaiBkIOaaaHelloIO.txt
System.out.println("文件是否存在: " + f.exists());//文件是否存在
System.out.println("是否可写: " + f.canWrite());//文件是否可写
System.out.println("文件是否可读: " + f.canRead());//文件是否可读
System.out.println("是否为文件: " + f.isFile());//是否为文件
System.out.println("是否是目录: " + f.isDirectory());//是否是目录
//距离1970年1月1日 00:00:00 的毫秒数
System.out.println("文件的最后修改日期: " + f.lastModified());// 文件的最后修改日期
long lastModifiedTime = f.lastModified();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date = new Date(lastModifiedTime);
System.out.println("date:" + date);
String strDate = sdf.format(date);
System.out.println(strDate);
System.out.println("文件长度" + f.length());//文件长度
//System.out.println(f.delete());//删除文件
String[] strArr = fileDirection.list();//列出目录下所有的文件
for(String s:strArr){
System.out.println(s);
}
}
}
以上是关于Java IO流的主要内容,如果未能解决你的问题,请参考以下文章