网站建设流程收费,游戏网,wordpress链接翻译,公司起名大全文库15.1#xff1a;输入/输出流
文件类#xff1a;File
字节流#xff1a;InputStream#xff1a;入 OutputStream#xff1a;出
字符流#xff1a;Reader#xff1a;入 Writer#xff1a;出
15.1.1 输入流
InputStream类是字节输入流的抽象类#xff0c;所有字节流… 15.1输入/输出流
文件类File
字节流InputStream入 OutputStream出
字符流Reader入 Writer出
15.1.1 输入流
InputStream类是字节输入流的抽象类所有字节流的父类。该类中所有方法遇到错误会引发IOException异常。
该类中有一些方法
read
readbyte[] b
mark(int readlimit)
reset
skip
15.1.2 输出流
15.2 File类
操作创建或者删除
状态文件是否存在或者隐藏
创建文件对象
new FileString Pathnname
File file new File“d:/1.txt”
new FileString parentString child
new FileFile parentString child
15.2.1文件的创建与删除
package fifteenth; import java.io.File; public class FileTest { public static void main(String[] args) { // TODO Auto-generated method stub File file new File(D:\\word.text);//创建文件对象 if(file.exists()) {//exists存在 file.delete();//如果该文件存在 System.out.println(文件已删除);//将该文件删除 }else {//如果文件不存在 try { file.createNewFile();//try语句捕捉可能出现的异常 System.out.println(文件已创建);//创建该文件 }catch(Exception e){ e.printStackTrace(); } } } } //例题15.1 15.2.2获取文件信息
package fifteenth; import java.io.File; public class FileTest { public static void main(String[] args) { // TODO Auto-generated method stub File file new File(D:\\word.text);//创建文件对象两个斜杠是转义字符 if(file.exists()) {//exists存在 String name file.getName();//获取文件名称 long length file.length();//获取文件长度 boolean hidden file.isHidden();//判断文件是否隐藏 file.delete();//如果该文件存在 System.out.println(文件已删除);//将该文件删除 System.out.println(文件名称name); System.out.println(文件长度是length); System.out.println(该文件是隐藏文件吗hidden); }else {//如果文件不存在 try { file.createNewFile();//try语句捕捉可能出现的异常各种问题处理或者抛出 System.out.println(文件已创建);//创建该文件 }catch(Exception e){ e.printStackTrace(); } System.out.println(该文件不存在); } } } //例题15.2 递归算法
package fifteenth; import java.io.File; public class File1 { public static void main(String[] args) { File file new File(D:\\xinli); printAllFiles(file); } //在方法里再次调用方法递归算法 private static void printAllFiles(File file) { // TODO Auto-generated method stub File[] files file.listFiles(); for( File f: files) { if(f.isDirectory()){ printAllFiles(f); }else { System.out.println(f.getName()); } } } } 文件夹加持代码效果 15.3文件输入/输出流
15.3.1FileInputStream与FileOutputStream字节流
package fifteenth; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; public class FileSteamDemo { // 创建类 public static void main(String[] args) { // 主方法 File file new File(D:\\word.txt); // 创建文件对象 try { // 捕捉异常 FileOutputStream out new FileOutputStream(file); // 创建FileOutputStream对象 byte buy[] 我有一只小毛驴我从来也不骑。.getBytes(); // 创建byte型数组 out.write(buy); // 将数组中的信息写入到文件中 out.close(); // 将流关闭 } catch (Exception e) { // catch语句处理异常信息 e.printStackTrace(); // 输出异常信息 } try { // 创建FileInputStream类对象 FileInputStream in new FileInputStream(file); byte byt[] new byte[1024]; // 创建byte数组 int len in.read(byt); // 从文件中读取信息 System.out.println(文件中的信息是 new String(byt, 0, len));// 将文件中的信息输出 in.close(); // 关闭流 } catch (Exception e) { e.printStackTrace(); } } } //例题15.3 package fifteenth; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class FileReaderDemo { public static void main(String[] args) { File file new File(D:\\word.txt); // 创建文件对象 try { FileWriter fw new FileWriter(file); // 创建字符输出流 String word 明月几时有把酒问青天。; // 写入的字符串 fw.write(word); // 将字符串写入到文件中 fw.close(); // 关闭流 } catch (IOException e) { e.printStackTrace(); } try { FileReader fr new FileReader(file);// 创建字符输入流 char ch[] new char[1024]; // 缓存字符数组 int len fr.read(ch); // 将文件中的字符读入到缓存数组中 System.out.println(文件中的信息是 new String(ch, 0, len));// 将字符转为字符串输出 fr.close(); // 关闭流 } catch (IOException e) { e.printStackTrace(); } } }//例题15.4 FileOutputStream
package fifteenth; import java.io.File; import java.io.FileOutputStream; import java.io.IOException;//导入需要的类 public class FileStreamDemo { //写入文件内容读出来内容 public static void main(String[] args) throws IOException { File file new File(D:\\word.txt);//获取文件 FileOutputStream out new FileOutputStream(file);//对于程序来说是输出 byte[] by hello world.getBytes();//创建byte类型的字节类型数组输入想要的文字或字符 out.write(by);//调用方法输入 out.close();//关闭输出流不然会一直占用空间 // TODO Auto-generated method stub } }
此代码在控制台不会显示 在文件内显示
FileInputStream
package fifteenth; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException;//导入需要的类 public class FileStreamDemo { //写入文件内容读出来内容 public static void main(String[] args) throws IOException { File file new File(D:\\word.txt);//获取文件 //字节流输出在文件内显示 FileOutputStream out new FileOutputStream(file);//对于程序来说是输出 byte[] by hello world.getBytes();//创建byte类型的字节类型数组输入想要的文字或字符 out.write(by);//调用方法输入 out.close();//关闭输出流不然会一直占用空间 //字节流输入在控制台显示 FileInputStream in new FileInputStream(file); byte[] by1 new byte[1024];//1024字节太长解决方法是指定长度读取并打印 int len in.read(by1); System.out.print(new String(by1,0,len));//0和len指代从0号位置开始读取到len位置结束 in.close();//关闭 } } 15.3.2FileReader和FileWriter FileReader
package fifteenth; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class FileReaderDemo { public static void main(String[] args) throws Exception { // FileWriter输出 和 输入 File file new File(D:\\word.txt);//获取文件 //字符流输出在文件内显示 FileWriter writer new FileWriter(file);//对于程序来说是输出 char[] ch new char [] {z,h};//创建char类型的字节类型数组输入想要的文字或字符 writer.write(ch);//调用方法输入 writer.close();//关闭输出流不然会一直占用空间 //字符流输入在控制台显示 FileReader reader new FileReader(file); char[] ch1 new char[1024];//1024字节太长解决方法是指定长度读取并打印 int len reader.read(ch1);//读出 System.out.print(new String(ch1,0,len));//0和len指代从0号位置开始读取到len位置结束 reader.close();//关闭 } } FileWriter
package fifteenth; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class FileReaderDemo { public static void main(String[] args) throws Exception { // FileWriter输出 和 输入 File file new File(D:\\word.txt);//获取文件 //字符流输出在文件内显示 FileWriter writer new FileWriter(file);//对于程序来说是输出 char[] ch new char [] {z,h};//创建char类型的字节类型数组输入想要的文字或字符 writer.write(ch);//调用方法输入 writer.close();//关闭输出流不然会一直占用空间 //字符流输入在控制台显示 FileReader reader new FileReader(file); char[] ch1 new char[1024];//1024字节太长解决方法是指定长度读取并打印 int len reader.read(ch1);//读出 System.out.print(new String(ch1,0,len));//0和len指代从0号位置开始读取到len位置结束 reader.close();//关闭 } } 15.4带缓存的输入/输出流
普通流转换为带缓存的流
15.4.1 BufferedInputStream和BufferedOutStream
15.4.2:BufferedWriter和BufferedReader
package fifteenth; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class BufferedDemo { public static void main(String args[]) { String content[] { 好久不见, 最近好吗, 常联系 };// 写入的内容 File file new File(D:\\word.txt); // 创建文件对象 try { FileWriter fw new FileWriter(file); // 文件字符输出流 BufferedWriter bw new BufferedWriter(fw); // 换成输出流 for (int k 0; k content.length; k) { // 遍历要输入的内容 bw.write(content[k]); // 写入字符串 bw.newLine(); // 写入一个换行符 } bw.close(); // 关闭缓冲输出流 fw.close(); // 关闭文件字符输出流 } catch (IOException e) { e.printStackTrace(); } try { FileReader fr new FileReader(file); // 文件字符输入流 BufferedReader br new BufferedReader(fr);// 缓冲输入流 String tmp null; // 作为缓冲的临时字符串 int i 1; // 行数 // 从文件中读出一行如果读出的内容不为null则进入循环 while ((tmp br.readLine()) ! null) { System.out.println(第 i 行: tmp); // 输出读取的内容 i; // 行数递增 } br.close(); // 关闭缓冲输入流 fr.close(); // 关闭文件字符输入流 } catch (IOException e) { e.printStackTrace(); } } }//例题15.5 //普通流
FileWriter writer new FileWriter(file);
writer.write(门前大桥下游过一群鸭);//调用方法输入
writer.write(快来快来数一数二四六七八);
writer.write(咕嘎咕嘎真呀真多呀);
writer.write(数不清到底多少鸭);
//带缓存的流
BufferedWriter bw new BufferedWriter(writer);
bw.write(门前大桥下游过一群鸭);//调用方法输入
bw.newLine();
bw.write(快来快来数一数二四六七八);
bw.newLine();
bw.write(咕嘎咕嘎真呀真多呀);
bw.newLine();
bw.write(数不清到底多少鸭);
bw.close();
缓存代码输出
package fifteenth; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class FileReaderDemo { public static void main(String[] args) throws Exception { // FileWriter输出 和 输入 File file new File(D:\\word.txt);//获取文件 //缓存输出在文件内显示 FileWriter writer new FileWriter(file);//对于程序来说是输出 //缓存写入将普通流转换为待缓存的流进行换行操作 BufferedWriter bw new BufferedWriter(writer);//传入普通流 //char[] ch new char [] {z,h};创建char类型的字节类型数组输入想要的文字或字符 //可以传入字符串 bw.write(门前大桥下游过一群鸭);//调用方法输入 bw.newLine(); bw.write(快来快来数一数二四六七八); bw.newLine(); bw.write(咕嘎咕嘎真呀真多呀); bw.newLine(); bw.write(数不清到底多少鸭); bw.close(); writer.close();//关闭输出流不然会一直占用空间 //缓存输入在控制台显示 FileReader reader new FileReader(file); BufferedReader br new BufferedReader(reader); String s1 br.readLine(); System.out.println(第一行s1); System.out.println(第二行br.readLine()); System.out.println(第三行br.readLine()); System.out.println(第四行br.readLine()); reader.close();//关闭 } } 15.5数据输入/输出流
package fifteenth; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class DataStreamDemo { public static void main(String[] args) throws IOException { //输入文件里面 File file new File(D:\\word.txt); FileOutputStream isr new FileOutputStream(gbk); DataOutputStream zhw new DataOutputStream(isr); FileOutputStream fos new FileOutputStream(file);//先拿到普通字节流传入参数告诉他往哪里输出 DataOutputStream dos new DataOutputStream(fos);//转化数据流 dos.writeBoolean(false); dos.writeUTF(你好世界);//好处是规定类型text编码集相同就可以显示 dos.writeDouble(88.88);//坏处无法看懂存入是可以的 dos.close(); fos.close();//乱码 isr.close(); zhw.close(); //输出控制台里面 FileInputStream fis new FileInputStream(file); DataInputStream dis new DataInputStream(fis); System.out.println(dis.readBoolean()); System.out.println(dis.readUTF());//utf可以读出 System.out.println(dis.readDouble());//read方法无法读出chars dis.close(); fis.close(); } } 在此次代码内代码具有两面性如果txt文本的编码集和utf编码集适配就会被写入文件
package fifteenth; import java.io.*; public class DateSteamDemo { public static void main(String[] args) { File file new File(D:\\word.txt); try { // 创建FileOutputStream对象指定要向其中写入数据的文件 FileOutputStream fos new FileOutputStream(file); // 创建DataOutputStream对象用来向文件中写入数据 DataOutputStream dos new DataOutputStream(fos); dos.writeUTF(使用writeUTF()方法写入数据); // 将字符串写入文件 dos.writeDouble(19.8); // 将double数据写入文件 dos.writeInt(298); // 将int数据写入文件 dos.writeBoolean(true); // 将boolean数据写入文件 dos.close(); fos.close(); // 创建FileInputStream对象指定要从中读取数据的文件 FileInputStream fis new FileInputStream(file); // 创建DataInputStream对象用来从文件中读取文件 DataInputStream dis new DataInputStream(fis); // 读取字符串 System.out.println(readUTF方法读取数据 dis.readUTF()); // 读取double数据 System.out.println(readDouble方法读取数据 dis.readDouble()); // 读取int数据 System.out.println(readInt方法读取数据 dis.readInt()); // 读取boolean数据 System.out.println(readBoolean方法读取数据 dis.readBoolean()); dis.close(); fis.close(); } catch (IOException e) { e.printStackTrace(); } } } //例题15.6