精华内容
下载资源
问答
  • 一、超类:字节: InputStream(读入) OutputStream(写出)字符: Reader(字符 读入) Writer (字符写出)二、文件操作字节: FileInputStream ,FileOutputStream字符: FileReader, FileWriter(用法...

    一、超类:

    字节流: InputStream(读入流) OutputStream(写出流)

    字符流:    Reader(字符 读入流)    Writer (字符写出流)

    二、文件操作流

    字节流: FileInputStream  ,FileOutputStream

    字符流: FileReader, FileWriter(用法与字节流基本相同,不写)

    //1.指定要读 的文件目录及名称

    File file =new File("文件路径");

    //2.创建文件读入流对象

    FileInputStream fis =new FileInputStream(file);

    //3.定义结束标志,可用字节数组读取

    int i =0 ;

    while((i = fis.read())!=-1){

    //i 就是从文件中读取的字节,读完后返回-1

    }

    //4.关闭流

    fis.close();

    //5.处理异常

    //1.指定要写到的文件目录及名称

    File file =new File("文件路径");

    //2.创建文件读入流对象

    FileOutputStream fos =new FileOutputStream(file);

    //3.定义结束标志

    fos.write(要写出的字节或者字节数组);

    //4.刷新和关闭流

    fos.flush();

    fos.close();

    //5.处理异常

    三、缓冲流:

    字节缓冲流: BufferedInputStream,BufferedOutputStream

    字符缓冲流:BufferedReader ,BufferedWriter

    缓冲流是对流的操作的功能的加强,提高了数据的读写效率。既然缓冲流是对流的功能和读写效率的加强和提高,所以在创建缓冲流的对象时应该要传入要加强的流对象。

    //1.指定要读 的文件目录及名称

    File file =new File("文件路径");

    //2.创建文件读入流对象

    FileInputStream fis =new FileInputStream(file);

    //3.创建缓冲流对象加强fis功能

    BufferedInputStream bis =new BufferedInputStream(fis);

    //4.定义结束标志,可用字节数组读取

    int i =0 ;

    while((i = bis.read())!=-1){

    //i 就是从文件中读取的字节,读完后返回-1

    }

    //5.关闭流

    bis.close();

    //6.处理异常

    //1.指定要写到的文件目录及名称

    File file =new File("文件路径");

    //2.创建文件读入流对象

    FileOutputStream fos =new FileOutputStream(file);

    //3.创建缓冲流对象加强fos功能

    BufferedOutputStream bos=new BufferedOutputStream(fos);

    //4.向流中写入数据

    bos.write(要写出的字节或者字节数组);

    //5.刷新和关闭流

    bos.flush();

    bos.close();

    //6.处理异常

    四、对象流

    ObjectInputStream ,ObjectOutputStream

    不同于以上两种类型的流这里只能用字节对对象进行操作原因可以看上篇的编码表比照原理

    ObjectOutputStream对象的序列化:

    将java程序中的对象写到本地磁盘里用ObjectOutputStream

    eg:将Person类的对象序列化到磁盘创建Person类

    注1:此类要实现Serializable接口,此接口为标志性接口

    注2:此类要有无参的构造函数

    注3:一旦序列化此类不能再修改

    class Person implements Serializable{

    public Person(){}

    }

    2.创建对象流对象

    注:要增强功能可以将传入文件缓冲流

    ObjectOutputStream oos =new ObjectOutputStream(

    new FileOutputStream(new File("文件路径")));

    3.写入对象 ,一般会将对象用集合存储起来然后直接将集合写入文件

    List list =new ArrayList<>();

    list.add(new Person());

    ...(可以添加多个)

    oos.writeObject(list);

    4.关闭流,处理异常

    oos.flush();

    oos.close();

    五、转换流:

    这类流是用于将字符转换为字节输入输出,用于操作字符文件,属于字符流的子类,所以后缀为reader,writer;前缀inputstream,outputstream;

    注 :要传入字节流作为参赛

    InputStreamReader: 字符转换输出流

    OutputStreamWriter:字符转换输入流

    //1.获取键盘输入的字节流对象

    inInputStream in =Stream.in;

    /*2.用转换流将字节流对象转换为字符流对象,方便调用字符缓冲流的readeLine()方法*/

    InputStreamReader isr =new InputStreamReader(in);

    /*5.创建字符转换输出流对象osw,方便把输入的字符流转换为字节输出到本地文件。*/

    OutputStreamWriter osw =new OutputStreamWriter(newFileOutputStream(new File("文件名")));

    /*3.现在isr是字符流,可以作为参数传入字符缓冲流中*/

    BufferedReader br =new BufferedReader(isr);/*4.可以调用字符缓冲流br的readLine()方法度一行输入文本*/

    String line =null;

    while((line =br.readLine()){

    osw.write(line);//osw是字符流对象,可以直接操作字符串}

    注:InputStreamReader isr =new InputStreamReader(new "各种类型的字节输入流都行即是:后缀为InputStream就行");

    OutputStreamWriter osw =new OutputStreamWriter(new"后缀为OutputStream就行");

    六、区别记忆

    1.对象流是可以读写几乎所有类型的只要是对象就行,而字节字符流,只能读写单个字节字符或者字节字符数组,以上没有读写字节字符数组的;注意对象流只有字节流!

    2.字符和字节循环读入的结束条件int i=0; (i =fis.read())!=-1用字符数组复制文件(fr 读入流 ,fw写出流),字节流也是相同的用法

    int i = 0;  char[] c = new char[1024];

    while((i = fr.reade()) !=-1)){

    fw.write(c,0,i);

    }

    123456

    3.对象流里面套缓冲流的情景:

    new ObjectInputStream(new BufferedInputStream(new FileInputStream(new File(“文件路径”))));

    4.记忆流及其功能的方法:

    前缀表示功能,后缀表示流的类型;

    比如说FileInputStream  前缀:File,表示操作的磁盘,后缀:intputstream,表示是字节输入流。

    同理 FileReader:表示操作文件的字符流

    ObjectInputStream :操作对象的字节输入流

    5.拓展:获取键盘输入的字符的缓冲流的写法:

    new BufferedReader(new InputStreamReader(System.in)));

    将字节以字符形式输出到控制台的字符缓冲流的写法:

    new BufferedWriter( new OutputStreamWriter(System.out))

    展开全文
  • 下面小编就为大家带来一篇JavaIO流文件读取、写入和复制的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • java IO流读写文件

    2016-03-17 16:05:45
    这里我简单记录一下java IO流读写本地文件 java IO流从本地读取文件: import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; ...
    这里我简单记录一下java IO流读写本地文件
    


    java IO流从本地读取文件:

    import java.io.BufferedReader;  
    import java.io.File;  
    import java.io.FileInputStream;  
    import java.io.FileNotFoundException;  
    import java.io.InputStreamReader;  
      
    public class Read {  
        public static void main(String[] args) {  
            read("E://123.txt");  
        }  
      
        public static void read(String file) {  
            String s = null;  
            StringBuffer sb = new StringBuffer();  
            File f = new File(file);  
            if (f.exists()) {  
                try {  
                    BufferedReader br =  
                        new BufferedReader(new InputStreamReader(new FileInputStream(f)));  
                    while ((s = br.readLine()) != null) {  
                        sb.append(s);  
                    }  
                    System.out.println(sb);  
                } catch (Exception e) {  
                    e.printStackTrace();  
                }  
            } else {  
                System.out.println("文件不存在!");  
            }  
        }  
    }  


    java IO流往本地文件写数据

    import java.io.*;  
      
    public class write {  
        public static void main(String[] args) {  
            write("E://123.txt", "hello");  
        }  
      
        public static void write(String path, String content) {  
            String s = new String();  
            String s1 = new String();  
              
            try {  
                File f = new File(path);  
                  
                if (f.exists()) {  
                    System.out.println("文件存在");  
                } else {  
                    System.out.println("文件不存在,正在创建...");  
                    if (f.createNewFile()) {  
                        System.out.println("文件创建成功!");  
                    } else {  
                        System.out.println("文件创建失败!");  
                    }  
                }  
                  
                BufferedReader input = new BufferedReader(new FileReader(f));  
      
                while ((s = input.readLine()) != null) {  
                    s1 += s + "/n";  
                }  
                  
                System.out.println("文件内容:" + s1);  
                input.close();  
                s1 += content;  
                BufferedWriter output = new BufferedWriter(new FileWriter(f));  
                output.write(s1);  
                output.close();  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
        }  
    }   



    展开全文
  • Java io流文件读取和写入

    千次阅读 2020-07-10 17:16:29
    Java io 操作demo类 1.读取操作 /** *@author lxw *@date 2020/6/24 *@desc 获取文件输入,这里读入内存中 *@param [fileName] *@return byte[] **/ public byte[] readPdfFile(String fileName) ...

    Java io 流操作demo类

    1.读取操作

     /**
         *@author lxw
         *@date 2020/6/24
         *@desc 获取文件输入流,这里读入内存中
         *@param [fileName]
         *@return byte[]
        **/
        public byte[] readPdfFile(String fileName) throws Exception{
            InputStream in = null;
            byte[] bytesRel;
            try {
                //读取Constants.PDF_CREATE_AND_SIGN.PDF_FILE_PATH路径下文件名位fileName的文件
                File f = new File(Constants.PDF_CREATE_AND_SIGN.PDF_FILE_PATH+fileName);
                in = new FileInputStream(f);
                //in.available 只适合于读取本地文件时判断流中字节数,不适合网络中的流数据大小判定
                bytesRel = new byte[ in.available()];
                in.read(bytesRel);
            } catch (IOException e) {
              log.error("读取文件{}失败!"+Constants.PDF_CREATE_AND_SIGN.PDF_FILE_PATH+fileName);
              throw new BizException(IfspRespCode.RESP_ERROR,"读取pdf文件失败!");
            }finally {
                if (in != null){
                    try {
                        in.close();
                    } catch (IOException e) {
                        log.error("输入流关闭失败!原因:{}",e.getMessage());
                    }
                }
            }
            return  bytesRel;
        }

    2.写文件

     /**
         *@author lxw
         *@date 2020/6/24
         *@desc 写文件 如果想提高效率,可以使用缓冲流
         *@param [pdfByte, fileName]
         *@return void
        **/
        public void writePdfFile(byte[] pdfByte,String fileName) throws Exception{
            //检查文件是否已经存在,存在删除
            checkFIleExit(fileName,Constants.PDF_CREATE_AND_SIGN.PDF_FILE_PATH);
            OutputStream os = null;
            try {
                os = new FileOutputStream(Constants.PDF_CREATE_AND_SIGN.PDF_FILE_PATH+fileName);
                os.write( pdfByte ) ;
                os.flush() ;
            } catch (IOException e) {
                log.error("写入文件{}失败!"+Constants.PDF_CREATE_AND_SIGN.PDF_FILE_PATH+fileName);
            }finally {
                try {
                    if (os!=null)  os.close();
                } catch (IOException e) {
                    log.error("输入流关闭失败!原因:{}",e.getMessage());
                }
            }
        }
    
    
     /**
         *@author lxw
         *@date 2020/6/23
         *@desc 检查文件是否存在,存在就删除掉
         *@param [fileName, path]
         *@return void
        **/
        public void checkFIleExit(String fileName,String path){
            log.info("checkFIleExit方法入参:fileName:{},path:{}",fileName,path);
            File file = new File(path+fileName);
            if (file.exists()){
                file.delete();
            }
        }

     

    展开全文
  • 主要介绍了java IO流读取图片供前台显示代码分享,具有一定借鉴价值,需要的朋友可以参考下。
  • java IO流操作,包括文件读取,写入,上传和下载,支持文本数据和音频等文件
  • 主要介绍了java IO流文件读写具体实例,有需要的朋友可以参考一下
  • Java使用IO流读取TXT文件

    万次阅读 2018-11-07 23:57:31
    通过BufferedReader读取TXT文件 window系统默认的编码是GBK,而IDE的编码多数为UTF-8,如果没有规定new InputStreamReader(new FileInputStream(file),“GBK”)为GBK会出现读取内容乱码。 //文件路径 String ...

    通过BufferedReader读取TXT文件

    window系统默认的编码是GBK,而IDE的编码多数为UTF-8,如果没有规定new InputStreamReader(new FileInputStream(file),“GBK”)为GBK会出现读取内容乱码。

    		//文件路径
    		String filePath="C:/Users/Admin/Desktop/products.txt";
            File file=new File(filePath);
            BufferedReader reader = null;
            String tempString = null;
            int line =1;
            try {
                // System.out.println("以行为单位读取文件内容,一次读一整行:");
                reader = new BufferedReader(new InputStreamReader(new FileInputStream(file),"GBK"));
                while ((tempString = reader.readLine()) != null) {
                    System.out.println("Line"+ line + ":" +tempString);
                    line ++ ;
                }
                reader.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }finally{
                if(reader != null){
                    try {
                        reader.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
    

    读取TXT文件并保持在List集合

    TXT文件内容
    商品 价格 类型 数量
    在这里插入图片描述
    创建Product对象

    public class Product{
        private int    id;
        private String name;
        private int    price;
        private char type;
        private int    count;
    
     //将txt文件中的产品对象读取出来并且封装成集合对象
        private static  List<Product> getProductFromTxt(){
            List<Product> list=new ArrayList<>();
            String filePath="C:/Users/Admin/Desktop/products.txt";
            File file=new File(filePath);
            BufferedReader reader = null;
            String content = null;
            int line =1;
            try {
               // System.out.println("以行为单位读取文件内容,一次读一整行:");
                reader = new BufferedReader(new InputStreamReader(new FileInputStream(file),"GBK"));
                while ((content = reader.readLine()) != null) {
                    //System.out.println("Line"+ line + ":" +tempString);
                    String[] arra=content.split(",");
                    Product product=new Product();
                    product.setId(line);
                    product.setName(arra[0]);
                    product.setPrice(Integer.parseInt(arra[1]));
                    char[] ch=arra[2].toCharArray();
                    product.setType(ch[0]);
                    product.setCount(Integer.parseInt(arra[3]));
                    list.add(product);
                    line ++ ;
                }
                reader.close();
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                if(reader != null){
                    try {
                        reader.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
        return list;
        }
    

    其中包含了String转char

     char[] ch=str.toCharArray();
     product.setType(ch[0]);
    
    展开全文
  • Java IO流读取文件

    千次阅读 2017-06-05 13:45:32
    使用指定编码读取文件 public static String toString(File file, String charset){ StringBuilder result = new StringBuilder(); BufferedReader br = null; try{ br=new BufferedReader
  • 1.非常简练易懂的JSON格式化小程序 2.实用的IO流管理,读写文件小程序,可改造 3.实际开发中临时写的自己用的,够用,不够完美
  • java IO流总结.md

    2020-01-31 11:25:25
    对于文本文件(.txt,.java,.c,.cpp),使用字符处理 对于非文本文件(.jpg,.mp3,.mp4,.avi,.doc,.ppt,...),使用字节处理 2.数据的流向:输入、输出 3.的角色:节点、处理 节点:直接从数据...
  • 四季花海java提供了搞笑读取文件的方式:文件流,下面以FileInputStream和Apache CommonsIO流两种读取方式来详细讲解:以下两种代码均是读取一个大约1G的文件:1、文件流FileInputStream inputStream = null;...
  • javaio流读写文件

    千次阅读 2018-07-24 09:28:55
    此demo为jsp页面读取txt内容,下方的input框输入内容  jsp内容: &lt;%@page import="java.io.InputStreamReader"%&gt; &lt;%@page import="java.io.FileInputStream"%&gt; ...
  • 主要介绍了Java基于IO流读取文件的方法,涉及Java文件流操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • // 创建新文件,有同名的文件的话直接覆盖 try (FileWriter writer = new FileWriter(writeName); BufferedWriter out = new BufferedWriter(writer) ) { out.write("王八蛋\r\n"); // \r\n即为换行 out.write...
  • Java io流使用相对路径读取文件

    千次阅读 2019-12-08 11:46:05
    前言: 在大多数时候我们会需要Java程序读取某个文件,不采用绝对路径读取文件,而采用相对路径读取。方法如下: 在工程目录下读取文件文件目录: /** * 工程目录下的相对路径读取文件数据 */ public ...
  • import java.io.*;public class copy {public static void main(String[] args) throws IOException {copyFile("d:/new/a.txt","d:/new/b.txt",true);//oldpath,newpath,是否不覆盖前文}public static voi...
  • Java IO流读取中文文本文件乱码问题,完美解决
  • java字节流怎么读取数据字节流读取数据例子如下: import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;/** * ...
  • 完美解决Java IO流读取中文文本文件乱码问题 package chenlei.test; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.io....
  • 做成语接龙游戏时找不到合适的成语库资源,自己用文件操作获取了一个
  • Java IO流读写文件的几个注意点

    千次阅读 2014-07-23 15:13:04
    平时写IO相关代码机会挺少的,但却都知道使用BufferedXXXX来读写效率高,没想到里面还有这么多陷阱,这两天突然被其中一个陷阱折腾一下:读一个文件,然后写到另外一个文件,前后两个文件居然不一样? 解决这个问题...
  • JAVAIO流文本文件读取方式(read 用法) 首先,我们先用通常的read方法去读 代码 import java.io.FileReader; import java.io.IOException; public class FileReaderdemo2{ public static void main...
  • Java实现文件复制,File文件读取,写入,IO流读取写入
  • java IO流读取保存图片文件package io;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;...
  • 主要介绍了java IO流将一个文件拆分为多个子文件代码示例,具有一定借鉴价值,需要的朋友可以参考下。
  • Java 中的一些基本文件操作,包括:文件操作(移动、读写)和文本文件读写

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 233,972
精华内容 93,588
关键字:

javaio流读取文件

java 订阅