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机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流 ...
随机推荐
- IOS-Alcatraz(插件管理工具)
一.简单说明 Alcatraz 是一款 Xcode的插件管理工具,可以用来管理XCode的 插件.模版以及颜色配置的工具. 二.如何安装 1.github地址:https://github.com/a ...
- QT中给程序加上主界面的图标
首先在源码目录下面新建一个 myapp.rc的文件,在里面填写如下: IDI_ICON1 ICON DISCARDABLE "myappico.ico" (名字看自己的图片,注意图 ...
- L130
Trump Administration Backs Asian-Americans in Harvard CaseThe United States Justice Department on Th ...
- 使用flowable 6.1.2 REST API 运行请假审批流程
一.下载 flowable rest war 包 http://download.csdn.net/detail/teamlet/9913312 二.部署 复制flowable REST.war到To ...
- [置顶]
【机器学习PAI实践五】机器学习眼中的《人民的名义》
一.背景 最近热播的反腐神剧"人民的名义"掀起来一波社会舆论的高潮,这部电视剧之所能得到广泛的关注,除了老戏骨们精湛的演技,整部剧出色的剧本也起到了关键的作用.笔者在平日追剧之余, ...
- canvas 绘制坐标轴
结果: 代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="U ...
- JMX心得 -- Server端
关于什么是JMX,这里引用了网上找来的一个介绍:JMX(JavaManagement Extensions)是一个为应用程序植入管理功能的框架.JMX是一套标准的代理和服务,实际上,用户可以在任何Ja ...
- Java中BIO,NIO,AIO的理解
在高性能的IO体系设计中,有几个名词概念常常会使我们感到迷惑不解.具体如下: 1 什么是同步? 2 什么是异步? 3 什么是阻塞? 4 什么是非阻塞? 5 什么是同步阻塞? 6 什么是同步非阻塞? 7 ...
- Python 字符串相似性的几种度量方法
字符串的相似性比较应用场合很多,像拼写纠错.文本去重.上下文相似性等. 评价字符串相似度最常见的办法就是:把一个字符串通过插入.删除或替换这样的编辑操作,变成另外一个字符串,所需要的最少编辑次数,这种 ...
- 《DSP using MATLAB》示例Example7.16
代码: M = 60; alpha = (M-1)/2; l = 0:M-1; wl = (2*pi/M)*l; Hrs = [ones(1, 7), 0.5925, 0.1099, zeros(1, ...