Reader Writer
package ioDemo;
import java.io.*;
import java.nio.charset.Charset;
public class ChangeStreamDemo {
public static void main(String[] args) {
try {
OutputStream os = new FileOutputStream("C:\\Users\\lihw\\Desktop\\test\\123.txt");
writeDemo(os);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void read(InputStream in) {
try {
Reader reader = new InputStreamReader(in, Charset.defaultCharset());
char[] chars = new char[1024];
int len = -1;
while ((len = reader.read(chars)) != -1) {
System.out.println(new String(chars, 0, len));
}
System.out.println("读取完毕");
reader.close();
}catch (Exception e) {
e.printStackTrace();
}
}
public static void writeDemo(OutputStream out) {
try {
Writer writer = new OutputStreamWriter(out);
writer.write("开开心心来玩耍");
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
FileWriter FileReader
package ioDemo;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.Writer;
public class CharStreamDemo {
public static void main(String[] args) {
out();
in();
}
private static void in() {
try {
char[] chars = new char[1024];
File file = new File("C:\\Users\\lihw\\Desktop\\test\\lhw.txt");
FileReader fr = new FileReader(file);
StringBuffer sb = new StringBuffer();
int len = -1;
while ((len = fr.read(chars)) != -1) {
sb.append(chars, 0, len);
}
System.out.println(sb.toString());
System.out.println("读取完毕");
fr.close();
} catch (Exception e) {
e.printStackTrace();
}
}
private static void out(){
try {
File file = new File("C:\\Users\\lihw\\Desktop\\test\\lhw.txt");
FileWriter fw = new FileWriter(file);
String info = "哈哈,我是file writer";
fw.write(info);
fw.flush();
fw.close();
System.out.println("write 写入完毕");
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
#### copy File
```java
package ioDemo;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class CopyFile {
public static void main(String[] args) {
try {
File file = new File("C:\\Users\\lihw\\Desktop\\test\\123.txt");
File copyFile = new File("C:\\Users\\lihw\\Desktop\\test\\1234.txt");
FileInputStream fis = new FileInputStream(file);
FileOutputStream fos = new FileOutputStream(copyFile);
int len = -1;
byte[] bytes = new byte[20];
while ((len = fis.read(bytes)) != -1) {
fos.write(bytes, 0, len);
fos.flush();
}
fis.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
#### DataOutputStream DataInputStream
```java
package ioDemo;
import java.io.*;
public class DataStreamDemo {
public static void main(String[] args) {
reader();
}
public static void write() {
try {
File file = new File("C:\\Users\\lihw\\Desktop\\test\\data.bb");
if (!file.exists()) {
file.createNewFile();
}
FileOutputStream fos = new FileOutputStream(file);
BufferedOutputStream bos = new BufferedOutputStream(fos);
DataOutputStream dos = new DataOutputStream(bos);
dos.writeInt(100);
dos.writeBoolean(false);
dos.writeUTF("哈哈哈哈,这是字符串");
dos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void reader() {
try {
File file = new File("C:\\Users\\lihw\\Desktop\\test\\data.bb");
if (!file.exists()) {
file.createNewFile();
}
InputStream is = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(is);
DataInputStream dis = new DataInputStream(bis);
int num = dis.readInt();
boolean boo = dis.readBoolean();
String text = dis.readUTF();
System.out.println(num);
System.out.println(boo);
System.out.println(text);
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
#### 读写文件
```java
package ioDemo;
import java.awt.*;
import java.io.File;
import java.io.FileFilter;
import java.util.Arrays;
public class FileDemo {
public static void main(String[] args) {
try {
File file = new File("c:" + File.separator + "Users" + File.separator + "lihw" + File.separator + "Desktop" + File.separator + "test" + File.separator + "lhw.txt");
if (!file.exists()) {
file.createNewFile();
System.out.println("文件创建成功");
}
System.out.println("是否为文件夹" + file.isDirectory());
System.out.println("是否是文件" + file.isFile());
File file2 = new File("C:\\Users\\lihw\\Desktop\\test");
boolean deleteFLag = file2.delete();
System.out.println("是否删除成功" + deleteFLag);
String[] list = file2.list();
System.out.println("某个文件夹下所有文件:" + Arrays.toString(list));
File[] files = file2.listFiles();
for (File f: files) {
System.out.println(f.getName());
System.out.println(f.getAbsoluteFile());
System.out.println(f.getAbsolutePath());
System.out.println(f.getParent());
System.out.println(f.getPath());
System.out.println(f.length());
System.out.println("是否为隐藏文件:" + f.isHidden());
System.out.println("最后修改时间:" + f.lastModified());
System.out.println("----------");
}
File file3 = new File("C:\\Users\\lihw\\Desktop\\test\\123.txt");
System.out.println("相对路径:" + file3.getPath());
System.out.println("绝对路径:" + file3.getAbsolutePath());
File file4 = new File("C:\\Users\\lihw\\Desktop\\test\\abc\\cde");
if(!file4.exists()) {
file4.mkdirs();
}
file4.renameTo(new File("C:\\Users\\lihw\\Desktop\\test\\abc\\cdf"));
File file5 = new File("C:\\Users\\lihw\\Desktop\\test");
file5.listFiles((pathname -> {
return pathname.getPath().endsWith(".txt");
}));
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
#### 文件的分割和融合
```java
package ioDemo;
import java.io.*;
public class FileDevisionAndMerge {
public static void main(String[] args) {
File file = new File("C:\\Users\\lihw\\Desktop\\openlayer_demo.zip");
devision(file, Double.valueOf(1024 * 1024 * 10));
}
public static void devision(File targetFile, Double cutSize){
if(targetFile == null) return;
double tmpnumber = targetFile.length() / cutSize;
int num = (int)Math.ceil(tmpnumber);
try {
InputStream is = new FileInputStream(targetFile);
BufferedInputStream bis = new BufferedInputStream(is);
BufferedOutputStream bos = null;
byte[] bytes = null;
int len = -1;
int count = 0;
for(int i = 0; i < num; i++) {
File tmpFile = new File("C:\\Users\\lihw\\Desktop\\ol-资料\\" + i + targetFile.getName());
bos = new BufferedOutputStream(new FileOutputStream(tmpFile));
if(cutSize > 1024) {
bytes = new byte[1024];
count = (int)Math.ceil(cutSize / 1024);
}else {
bytes = new byte[cutSize.intValue()];
count = 1;
}
while (count > 0 && (len = bis.read(bytes)) != -1) {
bos.write(bytes, 0, len);
bos.flush();
count--;
}
bos.close();
}
bis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
#### 文件的融合
```java
package ioDemo;
import java.io.*;
import java.util.Enumeration;
import java.util.Vector;
public class FileMerge {
public static void main(String[] args) {
try {
InputStream is1 = new FileInputStream("C:\\Users\\lihw\\Desktop\\ol-资料\\0openlayer_demo.zip");
InputStream is2 = new FileInputStream("C:\\Users\\lihw\\Desktop\\ol-资料\\1openlayer_demo.zip");
InputStream is3 = new FileInputStream("C:\\Users\\lihw\\Desktop\\ol-资料\\2openlayer_demo.zip");
InputStream is4 = new FileInputStream("C:\\Users\\lihw\\Desktop\\ol-资料\\3openlayer_demo.zip");
InputStream is5 = new FileInputStream("C:\\Users\\lihw\\Desktop\\ol-资料\\4openlayer_demo.zip");
Vector<InputStream> v = new Vector<>();
v.add(is1);
v.add(is2);
v.add(is3);
v.add(is4);
v.add(is5);
Enumeration<InputStream> elements = v.elements();
SequenceInputStream sis = new SequenceInputStream(elements);
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("C:\\Users\\lihw\\Desktop\\ol-资料\\33.zip"));
byte[] bytes = new byte[1024];
int len = -1;
while ((len = sis.read(bytes)) != -1) {
bos.write(bytes, 0, len);
}
bos.close();
sis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
#### ObjectOutputStream ObjectInputStream
```java
package ioDemo;
import java.io.*;
public class ObjectStreamDemo {
public static void main(String[] args) {
readObj();
}
public static void writeObj() {
try {
Dog dog = new Dog("旺旺", 10, "母");
File file = new File("C:\\Users\\lihw\\Desktop\\test\\666");
if (!file.exists()) {
file.createNewFile();
}
OutputStream out = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(out);
oos.writeObject(dog);
oos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void readObj() {
try {
Dog dog = null;
File file = new File("C:\\Users\\lihw\\Desktop\\test\\666");
InputStream is = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(is);
dog = (Dog) ois.readObject();
System.out.println("从文件中读取的对象");
System.out.println(dog);
} catch (Exception e) {
e.printStackTrace();
}
}
}
class Dog implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private int age;
private String sex;
private transient int id;
public Dog() {
}
public Dog(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
@Override
public String toString() {
return "Dog{" +
"name='" + name + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
```
#### PipedStream
```java
package ioDemo;
import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
import java.nio.charset.StandardCharsets;
public class PipedStreamDemo {
public static void main(String[] args) {
PipedInputStream pis = new PipedInputStream();
PipedOutputStream pos = new PipedOutputStream();
try {
pis.connect(pos);
} catch (Exception e) {
e.printStackTrace();
}
ReadThread readThread = new ReadThread(pis);
WriteThread writeThread = new WriteThread(pos);
new Thread(readThread).start();
new Thread(writeThread).start();
}
}
class ReadThread implements Runnable {
private PipedInputStream pis;
public ReadThread(PipedInputStream pis){
this.pis = pis;
}
@Override
public void run() {
try {
byte[] bytes = new byte[1024];
int len = -1;
while ((len = pis.read(bytes)) != -1) {
System.out.println(new String(bytes, 0, len));
}
System.out.println("读取结束");
pis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
class WriteThread implements Runnable{
private PipedOutputStream pos;
public WriteThread(PipedOutputStream pos) {
this.pos = pos;
}
@Override
public void run() {
try {
pos.write("你好呀,妹妹".getBytes(StandardCharsets.UTF_8));
pos.close();
System.out.println("写入结束");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
#### PrintStreamDemo
```java
package ioDemo;
import java.io.*;
public class PrintStreamDemo {
public static void main(String[] args) {
charPrint();
}
public static void bytePrint() {
File file = new File("C:\\Users\\lihw\\Desktop\\test\\123.txt");
try (OutputStream os = new FileOutputStream(file);
BufferedOutputStream bos = new BufferedOutputStream(os);
PrintStream ps = new PrintStream(bos)) {
ps.print("哈哈哈,这里是print的方法");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void charPrint() {
File file = new File("C:\\Users\\lihw\\Desktop\\test\\123.txt");
try (
Writer writer = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(writer);
PrintWriter pw = new PrintWriter(bw);
){
pw.print("hahah,真的是你么,printWriter");
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
#### propertie文件读取demo
```java
package ioDemo;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.Properties;
public class propertiesDemo {
public static void main(String[] args) {
write();
}
private static void write() {
try {
Properties p = new Properties();
p.put("name", "lhw");
p.put("version", "100");
p.put("password", "poi");
p.store(new FileOutputStream("config.properties"), "update 2022-6-9");
}catch (Exception e) {
e.printStackTrace();
}
}
public static void read(){
String name = "";
int version = 0;
String password = "";
try {
Properties properties = new Properties();
InputStream is = new FileInputStream("config.properties");
properties.load(is);
name = properties.getProperty("name");
version = Integer.parseInt(properties.getProperty("version"));
password = properties.getProperty("password");
System.out.println(new String(name.getBytes(), "utf-8"));
System.out.println(name);
System.out.println(version);
System.out.println(password);
is.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
#### StringReader
```java
package ioDemo;
import java.io.StreamTokenizer;
import java.io.StringReader;
public class StringReaderDemo {
public static void main(String[] args) {
StringReader sr = new StringReader("hello day day up");
StreamTokenizer st = new StreamTokenizer(sr);
int count = 0;
while (st.ttype != StreamTokenizer.TT_EOF) {
try {
if(st.nextToken() == StreamTokenizer.TT_WORD) {
count++;
}
} catch (Exception e) {
e.printStackTrace();
}
}
System.out.println("一共有" + count + "个单词");
sr.close();
}
}
```
#### 压缩文件
```java
package ioDemo;
import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
public class ZipFileDemo {
public static void main(String[] args) {
deCompression("C:\\Users\\lihw\\Desktop\\test.zip", "C:\\Users\\lihw\\Desktop\\123");
}
public static void compression(String zipFileName, File targetFile) {
System.out.println("正在压缩……");
try {
ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(zipFileName));
BufferedOutputStream bos = new BufferedOutputStream(zipOutputStream);
zip(zipOutputStream, targetFile, targetFile.getName(), bos);
bos.close();
zipOutputStream.close();
System.out.println("压缩完成。");
} catch (Exception e) {
e.printStackTrace();
}
}
private static void zip(ZipOutputStream zOut, File targetFile, String name, BufferedOutputStream bos) {
try {
if (targetFile.isDirectory()) {
File[] files = targetFile.listFiles();
if (files.length == 0) {
zOut.putNextEntry(new ZipEntry(name + "/"));
} else {
for (File f : files) {
zip(zOut, f, name + "/" + f.getName(), bos);
}
}
} else {
zOut.putNextEntry(new ZipEntry(name));
InputStream is = new FileInputStream(targetFile);
BufferedInputStream bis = new BufferedInputStream(is);
byte[] bytes = new byte[1024];
int len = -1;
while ((len = bis.read(bytes)) != -1) {
zOut.write(bytes, 0, len);
}
bis.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void deCompression(String zipFileName, String parentDir) {
try {
InputStream is = new FileInputStream(zipFileName);
ZipInputStream zis = new ZipInputStream(is);
ZipEntry entry = null;
File file = null;
while ((entry = zis.getNextEntry()) != null && !entry.isDirectory()) {
file = new File(parentDir, entry.getName());
if (!file.exists()) {
new File(file.getParent()).mkdirs();
}
FileOutputStream fos = new FileOutputStream(file);
BufferedOutputStream bos = new BufferedOutputStream(fos);
byte[] bytes = new byte[1024];
int len = -1;
while((len = zis.read(bytes)) != -1) {
bos.write(bytes, 0, len);
}
bos.close();
System.out.println(file.getAbsolutePath() + "解压成功");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
```