File文件的相关练习

文件操作的三种方式:

    public static void main(String[] args) {
//用File表示D:/IoFile/File/File.txt
File f1 = new File("D:/IoFile/File/File.txt");
File f2 = new File("D:/IoFile/File","File.txt");
//文件夹
File parent = new File("D:/IoFile/File");
//文件
File f3 = new File(parent,"File.txt");
}

文件的相关方法练习:

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("输入一个文件路径,显示文件的相关属性:");
String str1 = sc.next();
File f1 = new File(str1);
//文件是否存在
System.out.println("文件存在?:"+f1.exists());
//读写属性
System.out.println("可读?;"+f1.canRead());
System.out.println("可写?:"+f1.canWrite());
//是否是目录
System.out.println("是否是目录:"+f1.isDirectory());
//文件的绝对路径
System.out.println("文件的绝对路径为:"+f1.getAbsolutePath());
//文件的上级文件
System.out.println("文件的上级文件为:"+f1.getParent());
}

文件创建、删除操作:

public static void main(String[] args) {
//创建文件
File file = new File("D:/IoFile/File/dir1/dir2");
//创建普通文件
// try {
// file.createNewFile();
// System.out.println("文件创建成功!");
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
//创建文件夹
// file.mkdir();
// System.out.println("文件夹创建成功!"); //mkdirs 递归创建文件夹
File file1 = new File("D:/IoFile/File/File/File/file");
System.out.println(file1.mkdirs()); //在D:/iodemo/abc/def下创建一个文件a.txt
File parent = new File("D:/iodemo/abc/def");
File a = new File(parent,"a.txt");
//判断文件夹是否存在
if(!parent.exists()){
//不存在先创建文件夹
parent.mkdirs();
}
try {
//文件创建成功
a.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

文件练习:

输出一个文件夹中的所有文件、普通文件、以及文件夹的大小。

public static void main(String[] args) {
String str = "D:/IoFile/File";
File f = new File(str);
int count=0;
int totalsize=0;
if(f.exists()){
File[] files = f.listFiles();
System.out.println("所有文件个数是:"+files.length);
//循环遍历所有文件
for(int i = 0;i<files.length;i++){
if(files[i].isFile()){
//普通文件个数
count++;
//文件大小
//文件夹没有大小,若文件夹里有文件,则文件夹大小为文件大小之和
totalsize+=files[i].length();
}
}
System.out.println("普通文件个数是:"+count);
System.out.println("所有文件大小是:"+(float)totalsize/1024+"kb");
}else{
System.out.println("该文件夹不存在!");
}
}

FileReader读取文件

public static void main(String[] args) {
//读取文件
File f = new File("D:/IoFile/File/fileReader.txt");
FileReader fr=null;
try {
fr = new FileReader(f);
char[] c = new char[1024];
int len=0;
StringBuffer sb= new StringBuffer();
while((len=fr.read(c,0,10))!=-1){
//把读取到的内容存放到sb中
sb.append(c,0,len);
}
System.out.println(sb.toString());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if(fr!=null) {
fr.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

读取文件逐行读取

        //读取文件
File f = new File("D:/IoFile/File/fileReader.txt");
FileReader fr=null;
BufferedReader br = null; fr = new FileReader(f);
br = new BufferedReader(fr);
String str =null;
//逐行读取
while((str=br.readLine())!=null){
System.out.println(str);
}

InputStreamReader(字符输出流)

public static void main(String[] args) {
//字节流转字符流
FileInputStream fis=null;
InputStreamReader isr = null;
BufferedReader br =null;
try {
fis = new FileInputStream("D:/IoFile/File/isr.txt");
isr = new InputStreamReader(fis);
br = new BufferedReader(isr);
StringBuffer sb = new StringBuffer();
String str=null;
while((str=br.readLine())!=null){
sb.append(str+"\r\n");
}
System.out.println(sb.toString());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try{
if(br!=null){
br.close();
}
}catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

换行输出


FileWriter fw=null; fw = new FileWriter("D:/IoFile/fw.txt");
// \r\n 换行
fw.write("求知若饥\r\n");
fw.write("噼里啪啦");
System.out.println("写入成功!");

BufferedWriter

换行输出

        BufferedWriter bw = null;
try {
bw = new BufferedWriter(new FileWriter("D:/IoFile/File/bw.txt"));
bw.write("第一段测试");
//换行
bw.newLine();
bw.write("测试第二段");
System.out.println("写入成功!");
}

FileOutputStream

        try {
//把程序和目标源建立连接
FileOutputStream fos = new FileOutputStream("D:/IoFile/out.txt");
//把字符串转成字节数组
String str = "求知若愚,虚心若饥";
fos.write(str.getBytes());
//flush 把数据完全冲刷到目标源中
fos.flush();
fos.close();
System.out.println("文件写入成功!"); }

BufferedOutputStream

try {
//把程序和目标源建立连接
//Buffer更加安全
//直接传文件名,默认覆盖原有内容
//文件名+true;在原有内容后追加新内容
// BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("D:/IoFile/buffer.txt"));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("D:/IoFile/buffer.txt",true));
//把字符串转成字节数组
String str = "求知若愚,虚心若饥";
bos.write(str.getBytes());
//flush 把数据完全冲刷到目标源中
bos.flush();
bos.close();
System.out.println("文件写入成功!"); }

DataOutputStream

        try {
//写入
DataOutputStream dos = new DataOutputStream(new FileOutputStream("D:/IoFile/data.txt"));
dos.writeBoolean(true);
dos.writeInt(110);
dos.writeUTF("求知若饥");
dos.flush();
dos.close();
System.out.println("写入成功!"); }

PrintStream

//构造参数传System,out,就是在控制台打印信息
// PrintStream ps = new PrintStream(System.out);
// ps.print("132546u");
try {
PrintStream ps1=
new PrintStream
(new FileOutputStream("D:/IoFile/print.txt"));
ps1.println("虚心若愚");
ps1.println("求知若饥");
ps1.println("求知若饥");
ps1.println("虚心若愚");
ps1.flush();
ps1.close();
System.out.println("写入成功!");
}

Java——I/O相关练习代码的更多相关文章

  1. java 发送邮件 email相关操作代码测试,生成复杂格式邮件,发送邮件相关操作

    项目源码下载:http://download.csdn.net/detail/liangrui1988/6720047 效果图: 相关代码: test1 package com.mail; impor ...

  2. java文件夹相关操作 演示样例代码

    java文件夹相关操作 演示样例代码 package org.rui.io; import java.io.File; import java.io.FilenameFilter; import ja ...

  3. Java内存模型相关原则详解

    在<Java内存模型(JMM)详解>一文中我们已经讲到了Java内存模型的基本结构以及相关操作和规则.而Java内存模型又是围绕着在并发过程中如何处理原子性.可见性以及有序性这三个特征来构 ...

  4. 推荐Java五大微服务器及其代码示例教程

    来源素文宅博客:http://blog.yoodb.com/yoodb/article/detail/1339 微服务越来越多地用于开发领域,因为开发人员致力于创建更大,更复杂的应用程序,这些应用程序 ...

  5. Java 并发,相关术语

    Java 并发,相关术语: 术语 作用 synchronize 可修饰方法.代码块.类:介绍:https://www.cnblogs.com/zyxiaohuihui/p/9096882.html L ...

  6. paip.java 注解的详细使用代码

    paip.java 注解的详细使用代码 作者Attilax 艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/att ...

  7. 在Java中直接调用js代码(转载)

    http://blog.csdn.net/xzyxuanyuan/article/details/8062887 JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码. 在Ja ...

  8. 在Java中直接调用js代码

    JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码. 在Java中直接调用js代码 不能调用浏览器中定义的js函数,会抛出异常提示ReferenceError: “alert ...

  9. java 覆盖hashCode()深入探讨 代码演示样例

    java 翻盖hashCode()深入探讨 代码演示样例 package org.rui.collection2.hashcode; /** * 覆盖hashcode * 设计HashCode时最重要 ...

随机推荐

  1. 第六章节 BJROBOT 动态导航壁障

    导航前说明:一定要确保你小车在构建好地图的基础上进行! 1.把小车平放在你想要构建地图区域的地板上,打开资料里的虚拟机,打开一个终端, ssh 过去主控端启动 roslaunch znjrobot b ...

  2. 坐标转换成SVG的path路径

    大家好,我是一个刚入职的前端小白,入职后一直做关于svg 的东西,我将自以为很方便的方法提供给大家. function svgPathCurv(a,b,curv) { /* * 弯曲函数. * a:a ...

  3. ES6参数默认值,剩余参数及展开数组

    一.函数的参数默认值 在ES6之前,想要给参数设置默认值得话,只能在函数体内部加判断设置,比如如果传递参数为undefined时为true, 否则为false,如下图example1,ES6出现语法可 ...

  4. NC65在日常开发中常用的代码写法

    标题 NC65开发相关代码 版本 1.0.1 作者 walton 说明 收集NC在日常开发中常用的代码写法,示例展示 1.查询 1.1 通过BaseDAO查询结果集并转换 //通过BaseDAO进行查 ...

  5. AI算法测评事项

    前言 注:大概2017年-2018年国内人工智能热度达到顶峰,随后热度开始逐渐减少.2018年前人工智能被投资界.学术界.工业界和媒体炒的特别热,各大企业都想尝试一下深度学习技术在业务场景的应用.试水 ...

  6. linux的 复制 删除 解压 压缩 打包

    liunx 删除 删除文件夹实例: rm -rf /var/log/httpd/access 将会删除/var/log/httpd/access目录以及其下所有文件.文件夹 2 删除文件使用实例: r ...

  7. Go GRPC 入门(二)

    前言 最近较忙,其实准备一篇搞定的 中途有事,只能隔了一天再写 正文 pb.go 需要注意的是,在本个 demo 中,客户端与服务端都是 Golang,所以在客户端与服务端都公用一个 pb.go 模板 ...

  8. 通过JS逆向ProtoBuf 反反爬思路分享

    前言 本文意在记录,在爬虫过程中,我首次遇到Protobuf时的一系列问题和解决问题的思路. 文章编写遵循当时工作的思路,优点:非常详细,缺点:文字冗长,描述不准确 protobuf用在前后端传输,在 ...

  9. (十七)logging模块

    logging模块是Python内置的标准模块,主要用于输出运行日志. 简单应用 import logging logging.debug('+++debug+++') logging.info('+ ...

  10. QPainter 绘制图像接口

    阅读本文大概需要 3 分钟 我们在开发软件的过程中,绘制图像功能必不可少,使用 Qt 绘制图像时非常简单,只需要传递几个参数就可以实现功能,在 Qt 中绘制图像的 api有好几个 void drawI ...