Java之IO输入输出
首先介绍File类:
我们直接上代码:
package com.learn.chap10.sec02; import java.io.File;
import java.io.IOException; /**
* 测试创建目录和文件
* @author Administrator
*
*/
public class TestFile {
public static void main(String[] args) throws IOException {
File file=new File("E://java创建目录");
boolean b = file.mkdir();
if(b){
System.out.println("创建目录成功!");
file=new File("E://java创建目录//test.txt");
boolean m = file.createNewFile();
if(m){
System.out.println("创建文件成功!");
}else{
System.out.println("创建文件失败!");
}
}else {
System.out.println("创建目录失败!");
}
}
}
package com.learn.chap10.sec02; import java.io.File; public class TestFile1 {
public static void main(String[] args) {
File file = new File("E://java创建目录//test.txt");
if(file.exists()){ // 假如文件存在
boolean a = file.delete(); // 删除文件
if(a){
System.out.println("文件删除成功!");
}else {
System.out.println("文件删除失败!");
}
} file = new File("E://java创建目录");
if(file.exists()){ // 假如目录存在
boolean m = file.delete(); // 删除目录(注意:delete只能删除空目录)
if(m){
System.out.println("目录删除成功!");
}else {
System.out.println("目录删除失败!");
}
} }
}
package com.learn.chap10.sec02; import java.io.File; public class TestFile2 {
public static void listFile(File file){
if(file != null){
if(file.isDirectory()){
File[] a = file.listFiles(); // 遍历目录
if(a != null){
for (int i = 0; i < a.length; i++) {
listFile(a[i]); // 递归调用
}
}
}else {
System.out.println(file);
}
}
} public static void main(String[] args) {
listFile(new File("E://mywamp//apache//conf//original"));
}
}
再介绍字节流:
上下代码:
package com.learn.chap10.sec03; import java.io.File;
import java.io.FileInputStream; import java.io.InputStream;
/**
* 字节流---文件输入流测试(流入内存:从磁盘读取至内存)
* 输入、输出是针对内存 (举例: 输入流 即数据从硬盘流向内存,也可说是从硬盘读取数据至内存)
* 读取、写入是针对磁盘
* @author Administrator
*
*/
public class Demo1 {
public static void main(String[] args) throws Exception {
File file=new File("E://测试文件.txt");
InputStream inputStream = new FileInputStream(file);
InputStream inputStream1 = new FileInputStream(file);
InputStream inputStream2 = new FileInputStream(file);
// 读取数据方法一
byte[] b=new byte[1024];
inputStream.read(b); // 读取数据方法二
int fileLength1 = (int)file.length();
byte[] b1=new byte[fileLength1];
inputStream1.read(b1); // 读取数据方法三
int fileLength = (int)file.length();
byte[] m=new byte[fileLength];
int temp =0;
int len=0;
while((temp=inputStream2.read()) != -1){
m[len++] = (byte)temp;
} inputStream.close(); // 关闭输入流
inputStream1.close(); // 关闭输入流
inputStream2.close(); // 关闭输入流
System.out.println("读取的内容为:"+new String(b));
System.out.println("读取的内容为:"+new String(b1));
System.out.println("读取的内容为:"+new String(m));
} }
1 package com.learn.chap10.sec03; import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
/**
* 字节流---文件输出流测试
* @author Administrator
*
*/
public class Demo2 {
public static void main(String[] args) throws Exception {
File file=new File("E://测试文件.txt");
OutputStream out = new FileOutputStream(file,true);// 加true 表示追加
String string="呵呵呵呵12";
byte[] b=string.getBytes();
out.write(b);
out.close();
}
}
package com.learn.chap10.sec03; import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream; /**
* 字节流---缓冲流和非缓冲流比较
* @author Administrator
*
*/
public class Demo3 {
/**
* 非缓存
* @throws Exception
*/
public static void stream() throws Exception{
InputStream inputStream=new FileInputStream("E://测试文件1.txt");
OutputStream outputStream=new FileOutputStream("E://测试文件2.txt");
int b=0;
long start_time = System.currentTimeMillis(); // 开始时间
while((b=inputStream.read()) != -1){
outputStream.write(b);
}
inputStream.close();
outputStream.close();
long end_time = System.currentTimeMillis(); // 结束时间
System.out.println("非缓存花费时间:"+(end_time-start_time)); } /**
* 缓冲流 节省时间 性能优
* @throws Exception
*/
public static void buffer_stream() throws Exception {
// 定义了一个带缓冲的字节输入流
BufferedInputStream bInputStream = new BufferedInputStream(new FileInputStream("E://测试文件1.txt"));
// 定义了一个带缓冲的字节输出流
BufferedOutputStream bOutputStream = new BufferedOutputStream(new FileOutputStream("E://测试文件2.txt"));
int b=0;
long start_time = System.currentTimeMillis(); // 开始时间
while((b=bInputStream.read()) != -1){
bOutputStream.write(b);
}
bInputStream.close();
bOutputStream.close();
long end_time = System.currentTimeMillis(); // 结束时间
System.out.println("缓存花费时间:"+(end_time-start_time));
} public static void main(String[] args) throws Exception {
stream();
buffer_stream();
}
}
再介绍下字符流:
上下代码:
package com.learn.chap10.sec04; import java.io.File;
import java.io.FileReader;
import java.io.Reader;
/**
* 字符流----输入流
* @author Administrator
*
*/
public class Demo1 {
public static void main(String[] args) throws Exception {
File file=new File("E://测试文件1.txt");
Reader reader=new FileReader(file);
char[] c=new char[1024]; // 字符数组
// 方法一
int len=reader.read(c);
// 方法二
/*int temp=0;
int len=0;
while((temp=reader.read()) != -1){
c[len++] = (char)temp;
}*/
reader.close();
System.out.println("读取内容是:"+new String(c,0,len)); }
}
运行结果:
读取内容是:gffdhgfhgjhgjhgjhk
kukhjkhjk gfhfghgjhjhkjhkjhkjhkjhkj
package com.learn.chap10.sec04; import java.io.File;
import java.io.FileWriter;
import java.io.Writer;
/**
* 字符流----输出流
* @author Administrator
*
*/
public class Demo2 {
public static void main(String[] args) throws Exception {
File file=new File("E://测试文件1.txt");
Writer outWriter = new FileWriter(file,true);
String string="adffdsf";
outWriter.write(string); // 将字符串写入输出流
outWriter.close(); // 关闭数据流
}
}
Java之IO输入输出的更多相关文章
- JAVA基础--IO输入输出(File使用)17
一. File中的方法 1. 列举方法 /* * 获取指定目录以及子目录下的所有文件和文件夹 */ public class ListFilesDemo { public static void m ...
- Java基础(十二)IO输入输出
一.IO 概述 1.IO 概念 IO:I 代表 Input 输入:O 代表 Output 输出. Java 中 IO 是以流为基础进行输入输出,所有的数据被串行化(保存)写入输出流,或者从输入流读入. ...
- Java基础——IO流
今天刚刚看完java的io流操作,把主要的脉络看了一遍,不能保证以后使用时都能得心应手,但是最起码用到时知道有这么一个功能可以实现,下面对学习进行一下简单的总结: IO流主要用于硬板.内存.键盘等处理 ...
- Java - 文件(IO流)
Java - 文件 (IO) 流的分类: > 文件流:FileInputStream | FileOutputStream | FileReader | FileWriter ...
- Java之IO流详解
IO流 Input/Output 完成输入/输出 应用程序运行时——数据在内存中 ←→ 把数据写入硬盘(磁带) 内存中的数据不可持久保存的 输入:从外部存储器(硬盘.磁带.U盘)把数据读入内存. ...
- Java面向对象 IO (四)
Java面向对象 IO (四) 知识概要: (1)打印流 (2)序列流 SequenceInputStream (3)ObjectInputStream与Ob ...
- Java面向对象 IO (二)
Java面向对象 IO (二) 知识概要: (1)字节流概述 (2)字节流复制图片 (3)IO流(读取键盘录入) (4)读取转换流,写入转换流 字节流概述 ...
- Java基础IO流(一)
IO概念: 大多数应用程序都需要实现与设备之间的数据传输,例如键盘可以输入数据,显示器可以显示程序的运行结果等.在Java中,将这种通过不同输入输出设备(键盘,内存,显示器,网络等)之间的数据传输抽象 ...
- 【Java】IO Stream详细解读
成鹏致远 | 2013年12月31日 什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流 ...
随机推荐
- windows平台下安装Beautiful Soup
1.Beautiful Soup 4.3.2 下载 2.下载完成后解压,放在Python的安装目录下,假设放到C:/Python 3.运行cmd,切换到C:/Python/Beautiful Soup ...
- Cannot run program "svn" (in directory "G:\IntelliJ IDEA 2017.2.5"): CreateProcess error=2, 系统找不到指定的文件。
- 剑指offer--30.二叉搜索树的后序遍历序列
正常情况下,因为二叉搜索树,左子树所有结点比根小,右子树所有结点比根大,所以循环一遍就能结束 ----------------------------------------------------- ...
- objective-c和java下解析对象类型和数组类型JSON字符串
首先讲objective-c如何实现: 这里需要用到2个插件,一个是JSONKit,另一个是Jastor,一共包含6个文件,3个.h头文件和3个.m实现文件.在ARC的工程中如何导入不支持ARC的第三 ...
- HTML的后缀显示、标准格式和标签(1)
后缀的显示 win10:打开我的计算机--->点击上面的查看--->选中文件扩展名 win8:打开我的计算机--->点击上面的组织选中文件夹选项--->点击上面的查看---&g ...
- 程序try-catch的绝对健壮性之嵌套
写程序的过程中,我们对try-catch在熟悉不过了,捕获异常进行处理,以保证程序的健壮性. 今日突发一想,如果我们catch中的代码异常了怎么办?我们做以下一种假设 static void Main ...
- HSRP/VRRP/GLBP
当网络足够大的时候,网络规划师要考虑的技光是网络本身的性能问题,冗余技术也是必不可少的. 常见的冗余网关技术有• 热备份路由协议(HSRP).• 虚拟路由器冗余协议(VRRP)• 网关负载均衡协议(G ...
- MpVue开发之框架的搭建
npm install --global vue-cli vue脚手架 vue init mpvue/mpvue-quickstart my-project 创建一个基于mpvue-quickst ...
- docker 基本学习
Docker的应用场景: 加速本地开发和构建流程,使其更加高效.更加轻量化.本地开发人员可以构建.运行并分享Docker容器.容器可以在开发环境中构建,然后轻松地提交到测试环境中,并最终进入生产环境. ...
- bulkcopy实现批量插入与更新
public static void UpdateData<T>(List<T> list, string TabelName) { DataTable dt = new Da ...