java io操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java io操作相关的知识,希望对你有一定的参考价值。
//IO:输入输出流 (读入写出) /* * 使用文件字节流将数据读取到程序 */ public class TestFileInputStream { public static void main(String[] args) throws IOException { //先准备文件对象 f就是将要被读取的源文件 File f = new File("file/abc.txt"); //准备字节输入流对象 FileInputStream fis = null; try { //将源文件f转化成字节输入流 fis = new FileInputStream(f); //从流中获取数据 读取一个字节 // int read = fis.read(); //一次性读取一个字节数组 //先准备一个空杯子 byte[]bs = new byte[(int)f.length()]; //将流中的数据存储到bs中 fis.read(bs); //将字节数组中的数据展示 (将字节数组转字符串) String str = new String(bs); System.out.println(str); } catch (FileNotFoundException e) { e.printStackTrace(); }finally{ fis.close(); } } } //-------------------------------------------------------------------------- /* * 将程序中的数据写入到文件中 */ public class TestFileOutputStream { public static void main(String[] args) { //创建一个目标文件。 一会将数据写到f中 File f = new File("file/def.txt"); FileOutputStream fos = null; //准备文件输出流 try { //创建一个文件输出流对象,并指定将要把数据写到哪个文件中 //FileOutputStream(f,true)//f代表目标文件,true代表是否追加 fos = new FileOutputStream(f,true); //将数据写入到文件中 String str = "小明,今天天气\n怎么样?"; //先将字符串转字节数组 byte[] bs = str.getBytes(); //将字节数组中的数据写入到文件中 fos.write(bs); //刷缓存 fos.flush(); } catch (Exception e) { e.printStackTrace(); }finally{ try { if(null!=fos){ fos.close(); } } catch (IOException e) { e.printStackTrace(); } } } } //------------------------------------------------------------------------- /** * 使用缓冲流读取数据 */ public static void main(String[] args) { BufferedReader br = null; try { //创建一个缓冲流对象,指定要读取的文件 br = new BufferedReader( new FileReader( new File("file/abc.txt"))); //对文件进行操作 String str = br.readLine();//直接读取一行数据 while(str!=null){//不为空就循环读取 System.out.println(str); str = br.readLine(); } } catch (Exception e) { e.printStackTrace(); }finally{ if(null!=br){ try { //只需要关闭缓冲流对象,FileReader对象一同被关闭,不需要再手动关闭 br.close(); } catch (IOException e) { e.printStackTrace(); } } } } } //---------------------------------------------------------------------------------- /** * 使用字符缓冲流,对文件进行读写(复制) */ public static void main(String[] args) { //先将文件file/def.txt中的数据读取出来 BufferedReader br = null; //缓冲输出流对象 BufferedWriter bw = null; try { /* File file = new File("file/def.txt"); //要有FileReader对象,就需要先有文件对象 FileReader fr = new FileReader(file); //要创建缓冲流对象,必须先有Reader对象 br = new BufferedReader(fr);*/ //构建文件输入流对象 br = new BufferedReader( new FileReader( new File("file/def.txt"))); //构建文件输出流对象,指定将数据写到d盘中aaa.txt中 bw = new BufferedWriter( new FileWriter( new File("D:/aaa.txt"))); //使用缓冲流读取一行数据 String str = br.readLine(); while(str!=null){ //直接将上面代码读取的字符串写到文件中 bw.write(str); bw.newLine();//换行 bw.flush();//刷流 //继续读取数据 str = br.readLine(); } } catch (Exception e) { e.printStackTrace(); }finally{ try { //先进后出 if(bw!=null){ bw.close(); } if(br!=null){ br.close(); } } catch (IOException e) { e.printStackTrace(); } } } } //------------------------------------------------------------------------------- /** * * @author Administrator 字符输入流: 以reader结束的流的类一定是字符输入流 FileReader:文件字符流 BufferedReader:缓冲字符流 */ public class TestReader { public static void main(String[] args) { //创建字符输入流对象 FileReader fr = null; try { //创建字符输入流对象,并指定操作的是哪一个文件对象 fr = new FileReader(new File("file/abc.txt")); //使用字符输入流读取数据 // int read = fr.read();//读取一个字符 //准备一个字符数组 char[]chs = new char[10]; //将数据读取到字符数组中,len代表读取到数组中字符的个数 int len = fr.read(chs); //循环将数据都读取出来 while(len!=-1){//len=-1代表读取到了文件的末尾 //将每一次读取到字符数组中的数据转成字符串 // 从数组的第一个元素开始,len代表数组中字符的个数 String str = new String(chs,0,len); System.out.println(str); //继续循环读取 len = fr.read(chs); } } catch (Exception e) { e.printStackTrace(); }finally{ if(null!=fr){ try { fr.close(); } catch (IOException e) { e.printStackTrace(); } } } } } //---------------------------------------------------------------------------------- /* * 配置文件的读取和使用 * properties文件中key和value都是String类型 * * */ public class TestProper { public static void main(String[] args) { FileInputStream fis = null; Properties pp = null; try { //构建一个输入流对象 fis = new FileInputStream("file/abc.properties"); //创建properties对象 pp = new Properties(); //使用配置文件对象,将流加载进行 pp.load(fis); //从pp中获取数据 String name = pp.getProperty("name"); String age = pp.getProperty("age"); String hobbys = pp.getProperty("hobby"); //将爱好hobbys分成几个独立的部分 “跳舞,吃饭,唱歌” String[] hobs = hobbys.split(","); System.out.println(name+age+hobbys); } catch (Exception e) { e.printStackTrace(); }finally{ try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } } 回顾以前学的 (每天坚持写博客)
以上是关于java io操作的主要内容,如果未能解决你的问题,请参考以下文章