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机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流 ...
随机推荐
- 使用cqlsh远程连接cassandra——设置cassandra.yaml里rpc_address和listen_address为ipv4地址即可
You need to edit cassandra.yaml on the node you are trying to connect to and set the node ip address ...
- ORACLE expdp \ impdp \ exp \ imp
(转自:http://www.cnblogs.com/lanzi/archive/2011/01/06/1927731.html) EXPDP命令行选项1. ATTACH该选项用于在客户会话与已存在导 ...
- SpringCloud教程 | 第十二篇: 断路器监控(Hystrix Dashboard)
版权声明:本文为博主原创文章,欢迎转载,转载请注明作者.原文超链接 ,博主地址:http://blog.csdn.net/forezp. http://blog.csdn.net/forezp/art ...
- css3 hover 效果
链接 链接 链接 链接 大量级 11 22 类似拉勾 33 包括各种流行的hover 小众 极光
- Celery分布式应用
最近有应用需要部署到不同的服务器上运行,但是有没有PBS这样的调度系统,就想起来Python的调度神器 Celery.现在针对我的实际应用做一些记录. 1. 安装 因为我并不注重结果而是把命令拿到不同 ...
- HAWQ取代传统数仓实践(十一)——维度表技术之维度合并
有一种合并维度的情况,就是本来属性相同的维度,因为某种原因被设计成重复的维度属性.例如,在销售订单示例中,随着数据仓库中维度的增加,我们会发现有些通用的数据存在于多个维度中.客户维度的客户地址相关信息 ...
- Kali Linux破解wifi密码(WEP)
WEP是无线路由器最初广泛使用的一种加密方式,这种加密方式非常容易被破解. 目前很少有人使用wep加密方式,但是还是会有. 建议:使用WPA/WPA2做为加密方式. 抓包和"破解wpa/wp ...
- 21天学通C++_Day3_Part2
0.语句的分行 法1:在第一行末尾添加反斜杠 cout<<"Hello \ World!"<<endl; 法2:将字符串字面量分成两个,编译器注意到两个响铃 ...
- bzoj 4555 求和
求 $\sum\limits_{i=0}^n\sum\limits_{j=0}^n Stirling2(i,j) \times 2^j \times j!$ $n \leq 100000$ sol: ...
- CF311B Cats Transport
题意 Zxr960115 is owner of a large farm. He feeds m cute cats and employs p feeders. There's a straigh ...