package com.gzxh.IODemo;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class IODemo {
/**
* @param args
* IO:Input(输入),Output(输出)
* 流:不同输入输出设备(键盘,内存,显示器,网络等)之间的数据传输抽象表述为“流”。
* IO流:输入输出操作
* 输入流:Input
* 输出流:Output
* 以程序(加载在内存)作为参照:
* 输入流:Input
* 输出流:Output
* 以程序(加载在内存)作为参照;
* 输入:设备--> 程序
* 输出:程序--> 设备
* 传输数据不同分为:
* 字节传输:图片、视频、音乐等以二进制储存的文件
* 字符传输:传输文字性内容
* 字节输入:
* InputStream:抽象类是表示输入文字流的所有类的超类
* 实现子类:FileInputStream 从文件系统中的文件获取输入字节
* 1.创建字节输入流
* 2.读取字节:read()
* 3.close:释放资源
*\转义 \n
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO 自动生成的方法存根
//1.实例化:创建字节输入流
FileInputStream fis = new FileInputStream("E:\\ws\\java.txt");
int data;
data = fis.read();
while((data = fis.read()) != -1){
System.out.println((char)data);
}
fis.close();//3.关闭:释放资源,在最后
}
}
package com.gzxh.demo;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class OutputDemo {
/**
* @param args
* 字节输出流
* OutputStream:抽象类是表示字节输出流的所有类的超类
* 实现子类:FileOutputStream
* 文件输出流是用于将数据写入到输出流FileDescriptor
* 1.创建输出流:实例化
* 2.准备写入的数据:字节数组
* 3.向输出流写入数据
* 4.释放资源
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO 自动生成的方法存根
//1.实例化
//FileOutputStream fos = new FileOutputStream("E:\\ws\\out.tex");
//2.准备写入的数据:字节数组
//byte[] b = {65,66,67,'s'};
//3.向输出流写入数据
//fos.write(b);
//System.out.println("写入操作完毕");
//4.释放资源
//fos.close();
FileOutputStream fos = new FileOutputStream("E:\\ws\\out.txt");
fos.write('d');
fos.write('A');
fos.write('d');
fos.write('A');
fos.close();
// write(int b);
}
}
package com.gzxh.RWDemo;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class ReaderDemo {
/**
* @param args
* 字符流:Render和writer
* Reader:用于读取字符流的抽象类。
* InputStreamReader:是从字节流到字符流的桥:它读取字节,并使用指定的charset将其解码为字符
* 实现类:FileReader阅读字符文件
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO 自动生成的方法存根
//1.实例化
FileReader fr = new FileReader("E:\\ws\\out.txt");
int data;
while ((data = fr.read()) != -1 ){//2.读取字符
System.out.println((char)data);
}
//3.释放资源
fr.close();
}
}
package com.gzxh.RWDemo;
import java.io.FileWriter;
import java.io.IOException;
public class WriterDemo {
/**
* @param args
* Writer:用于写入字符流的抽象类
* OutputStreamWriter:字符流到字节流的桥梁
* FileWriter:写字符文件
* @throws IOException
*
*/
public static void main(String[] args) throws IOException {
// TODO 自动生成的方法存根
//1.实例化
FileWriter fw = new FileWriter("E:\\ws\\out.txt");
//2.给文件写入内容
fw.write("下课了");
fw.close();
}
}
创建文件夹
package com.gzxh.IODemo;
import java.io.File;
import java.io.IOException;
public class FileDemo {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO 自动生成的方法存根
File file = new File("E:\\doc\\ss.mp3");
if (file.exists()) {
System.out.println(file.getPath());
}else{
System.out.println("创建文件夹");
file.createNewFile();
// file.mkdirs();
}
}
}