精华内容
参与话题
问答
  • FileReader读取文件的三种方式

    万次阅读 2018-02-04 10:39:23
    FileReader可以通过一次读取文件中一个字符,一次读取一个字符数组或使用缓冲区这三种方式来读取文件 备注:使用缓冲区的方式的内部实现是借助数组完成 package IO; import java.io.BufferedReader; import java....

    #日常练习

    FileReader可以通过一次读取文件中一个字符,一次读取一个字符数组或使用缓冲区这三种方式来读取文件

    备注:使用缓冲区的方式的内部实现是借助数组完成

    package IO;
    
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.IOException;
    
    public class FileReaderDemo {
    
    	public static void main(String[] args) {
    		// 读取文件的方式一:逐个字符来读取文本文件
    		FileReader fr = null;
    		try {
    			fr = new FileReader("Demo.txt");
    
    			int ch = fr.read();
    			while (ch != -1) {
    				System.out.print((char) ch);
    				ch = fr.read();
    			}
    			System.out.println();
    		} catch (IOException e) {
    			System.out.println("异常:" + e.toString());
    		} finally {
    			try {
    				if (fr != null)
    					fr.close();
    			} catch (IOException e) {
    				System.out.println("异常:" + e.toString());
    			}
    		}
    		
    		//读取文件方式二:使用数组来读取文本文件
    		FileReader fr1 = null;
    		try {
    			fr1 = new FileReader("Demo.txt");
    			char [] buf = new char[1024];
    			int num = 0;
    			while((num = fr1.read(buf))!=-1) {
    				System.out.println(new String(buf,0,num));
    			}
    		}catch(IOException e) {
    			System.out.println("异常:" + e.toString());
    		}finally {
    			try {
    			if(fr1!=null)
    			fr1.close();
    			}catch(IOException e) {
    				System.out.println("异常:" + e.toString());
    			}
    		}
    		
    		//方法三:用缓冲区读取文本文件
    		//通过查源码得知方法三内部实现时是使用数组形式来缓冲字符数据的
    		FileReader fr2 = null;
    		BufferedReader bufr = null;
    		try {
    			fr2 = new FileReader("Demo.txt");
    			bufr = new BufferedReader(fr2);
    			String line = null;
    			//BufferedReader提供了按行读取文本文件的方法readLine()
    			//readLine()返回行有效数据,不包含换行符,未读取到数据返回null
    			while((line = bufr.readLine())!=null) {
    				System.out.println(line);	
    			}
    		}catch(IOException e) {
    			System.out.println("异常:" + e.toString());
    		}finally {
    			try {
    			if(bufr!=null)
    			bufr.close();
    			}catch(IOException e) {
    				System.out.println("异常:" + e.toString());
    			}
    		}
    	}
    
    }
    
    2018/02/06晚修改:添加FileReader读取文件的第三种方式。



    展开全文
  • js中FileReader()用法

    万次阅读 2019-03-30 13:45:10
    版权声明:本文为博主原创文章,请在转载时说明出处。 https://blog.csdn.net/jackfrued/article/details/8967667 </div> <link rel="stylesheet" h...
    				版权声明:本文为博主原创文章,请在转载时说明出处。					https://blog.csdn.net/jackfrued/article/details/8967667				</div>
    							            <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-f57960eb32.css">
    					<div class="htmledit_views" id="content_views">
    

    HTML5定义了FileReader作为文件API的重要成员用于读取文件,根据W3C的定义,FileReader接口提供了读取文件的方法和包含读取结果的事件模型。


    FileReader的使用方式非常简单,可以按照如下步骤创建FileReader对象并调用其方法:

    1.检测浏览器对FileReader的支持

    if(window.FileReader) {
        var fr = new FileReader();
        // add your code here
    }
    else {
        alert("Not supported by your browser!");
    }
    

    2. 调用FileReader对象的方法

    FileReader 的实例拥有 4 个方法,其中 3 个用以读取文件,另一个用来中断读取。下面的表格列出了这些方法以及他们的参数和功能,需要注意的是 ,无论读取成功或失败,方法并不会返回读取结果,这一结果存储在 result属性中。

    方法名 参数 描述
    abort none 中断读取
    readAsBinaryString file 将文件读取为二进制码
    readAsDataURL file 将文件读取为 DataURL
    readAsText file, [encoding] 将文件读取为文本

    readAsText:该方法有两个参数,其中第二个参数是文本的编码方式,默认值为 UTF-8。这个方法非常容易理解,将文件以文本方式读取,读取的结果即是这个文本文件中的内容。
    readAsBinaryString:该方法将文件读取为二进制字符串,通常我们将它传送到后端,后端可以通过这段字符串存储文件。
    readAsDataURL:这是例子程序中用到的方法,该方法将文件读取为一段以 data: 开头的字符串,这段字符串的实质就是 Data URL,Data URL是一种将小文件直接嵌入文档的方案。这里的小文件通常是指图像与 html 等格式的文件。


    3. 处理事件

    FileReader 包含了一套完整的事件模型,用于捕获读取文件时的状态,下面这个表格归纳了这些事件。

    事件 描述
    onabort 中断时触发
    onerror 出错时触发
    onload 文件读取成功完成时触发
    onloadend 读取完成触发,无论成功或失败
    onloadstart 读取开始时触发
    onprogress 读取中

    文件一旦开始读取,无论成功或失败,实例的 result 属性都会被填充。如果读取失败,则 result 的值为 null ,否则即是读取的结果,绝大多数的程序都会在成功读取文件的时候,抓取这个值。

    fr.onload = function() {
        this.result;
    }
    


    下面通过一个上传图片预览和带进度条上传来展示FileReader的使用。

    `
    <script type="text/javascript">
    		function showPreview(source) {
    			var file = source.files[0];
    			if(window.FileReader) {
    				var fr = new FileReader();
    				fr.onloadend = function(e) {
    					document.getElementById("portrait").src = e.target.result;
    				};
    				fr.readAsDataURL(file);
    			}
    		}
    	</script>
     
    <input type="file" name="file" onchange="showPreview(this)" />
    <img id="portrait" src="" width="70" height="75">
    

    `

    如果要限定上传文件的类型,可以通过文件选择器获取文件对象并通过type属性来检查文件类型

    if(!/image\/\w+/.test(file.type)){
        alert("请确保文件为图像类型");
        return false;
    }
    

    不难发现这个检测是基于正则表达式的,因此可以进行各种复杂的匹配,非常有用。

    如果要增加一个进度条,可以使用HTML 5的progress标签,通过下面的代码实现。

    <form>
        <fieldset>
            <legend>分度读取文件:</legend>
            <input type="file" id="File" />
            <input type="button" value="中断" id="Abort" />
            <p>
                <label>读取进度:</label><progress id="Progress" value="0" max="100"></progress>
            </p>
            <p id="Status"></p>
        </fieldset>
    </form>
    

    var h = {
        init: function() {
            var me = this;
             
            document.getElementById('File').onchange = me.fileHandler;
            document.getElementById('Abort').onclick = me.abortHandler;
             
            me.status = document.getElementById('Status');
            me.progress = document.getElementById('Progress');
            me.percent = document.getElementById('Percent');
             
            me.loaded = 0;
            //每次读取1M
            me.step = 1024 * 1024;
            me.times = 0;
        },
        fileHandler: function(e) {
            var me = h;
             
            var file = me.file = this.files[0];
             
            var reader = me.reader = new FileReader();
             
            //
            me.total = file.size;
             
            reader.onloadstart = me.onLoadStart;
            reader.onprogress = me.onProgress;
            reader.onabort = me.onAbort;
            reader.onerror = me.onerror;
            reader.onload = me.onLoad;
            reader.onloadend = me.onLoadEnd;
            //读取第一块
            me.readBlob(file, 0);
        },
        onLoadStart: function() {
            var me = h;
        },
        onProgress: function(e) {
            var me = h;
             
            me.loaded += e.loaded;
            //更新进度条
            me.progress.value = (me.loaded / me.total) * 100;
        },
        onAbort: function() {
            var me = h;
        },
        onError: function() {
            var me = h;
             
        },
        onLoad: function() {
            var me = h;
     
            if(me.loaded < me.total) {
                me.readBlob(me.loaded);
            } else {
                me.loaded = me.total;
            }
        },
        onLoadEnd: function() {
            var me = h;
             
        },
        readBlob: function(start) {
            var me = h;
             
            var blob,
                file = me.file;
             
            me.times += 1;
             
            if(file.webkitSlice) {
                blob = file.webkitSlice(start, start + me.step + 1);
            } else if(file.mozSlice) {
                blob = file.mozSlice(start, start + me.step + 1);
            }
             
            me.reader.readAsText(blob);
        },
        abortHandler: function() {
            var me = h;
             
            if(me.reader) {
                me.reader.abort();
            }
        }
    };
     
    h.init();
    



    展开全文
  • Java中FileReader类的常用方法

    千次阅读 2018-05-23 17:32:39
    FileReader字符输入流构造方法public FileReader(String fileName) throws FileNotFoundException在给定从中读取数据的文件名的情况下创建一个新 FileReader。 fileName - 要从中读取数据的文件的名称 public ...
    FileReader字符输入流

    构造方法

    public FileReader(String fileName) throws FileNotFoundException
    在给定从中读取数据的文件名的情况下创建一个新 FileReader。
    fileName - 要从中读取数据的文件的名称

    public FileReader(File file) throws FileNotFoundException
    在给定从中读取数据的 File 的情况下创建一个新 FileReader。
    file - 要从中读取数据的 File  

    常用方法

    public int read() throws IOException
    读取单个字符。
    读取的字符,如果已到达流的末尾,则返回 -1

    public int read(char[] cbuf) throws IOException
    读取一个字符数组
    读取的字符,如果已到达流的末尾,则返回 -1

    cbuf - 目标缓冲区

    public void close() throws IOException
    关闭该流并释放与之关联的所有资源。

    程序示例

    public static void main(String[] args) throws Exception {
        //读取当前项目下的StringDemo.java文件
        FileReader fr = new FileReader("StringDemo.java")
        //一次读取一个字符数组
        char[] chs = new char[1024] ;
        int len = 0 ;
        while((len=fr.read(chs))!=-1) {
            System.out.println(new String(chs,0,len));
        }
            
        //释放资源
        fr.close();
    
    }
    


    展开全文
  • FileWriter和FileReader解析

    万次阅读 2017-05-22 14:38:45
    FileWriter和FileReader是用来实现将字符读写到文件的IO类。1.FileWriter  是用来方便的将字符数据写入文件的类,这个类的构造函数假设默认的字符编码方式和缓冲区大小的可被接受的,如果要改变指定编码和缓冲区...

      FileWriter和FileReader是用来实现将字符读写到文件的IO类。

    1.FileWriter

      是用来方便的将字符数据写入文件的类,这个类的构造函数假设默认的字符编码方式和缓冲区大小的可被接受的,如果要改变指定编码和缓冲区大小可以用FileOutputStream来构造一个OutputStreamWriter来实现。
      当文件没有找到时,一般是可以自动创建文件,但这也和平台有关,有的平台不允许创建文件。FileWriter是用来写字符流的,如果要写字节流数据,请使用FileOutputStream。主要的构造函数有:
    FileWriter(File file)
    用File对象来构造FileWriter,写数据时,从文件开头开始写起,会覆盖以前的数据

    FileWriter(File file, boolean append)
    还是用File对象构造,如果第二个参数为true的话,表示以追加的方式写数据,从文件尾部开始写起

    FileWriter(FileDescriptor fd)
    用文件描述符来构造FileWriter

    FileWriter(FileDescriptor fd, boolean append)
    用文件描述符来构造,第二个参数为true的话,表示以追加的形式写入数据

    FileWriter(String fileName)
    用文件的路径名来构造FileWriter

    FileWriter(String fileName,boolean append)
    用文件路径名来构造FileWriter,第二个参数为true的话,表示以追加的形式写入文件

    大部分方法集成于Writer,请点击这里查看;其他主要方法有:
    String getEncoding()
    查看编码方式,返回时编码范式

    void write(char[] cbuf, int off, int len)
    将字符数组的一部分写入到流中。将cbuf[off],cbuf[off+1],…,cbuf[off+len-1]部分字符
    写入到流中,但能不能写len个字符取决于cbuf中是否有那么多

    2.FileReader

      用来方便的从文件中读出字符的类,默认编码和默认缓冲区大小假设是可以接受的。如果要改变默认编码和默认缓冲区大小可以用FileInputStream来构造InputStreamReader来实现。FileReader意味着是用来读字符的流,要实现读取字节流,请考虑使用FileInputStream
    构造函数有:
    FileReader(File file)
    用File对象来构造FileReader

    FileReader(FileDescriptor fd)
    用文件描述符构造FileReader

    FileReader(String fileName)
    用文件的路径名来构造FileReader

    主要的函数大多集成于Reader类,请点击这里查看。其他主要的函数有:
    public String getEncoding()
    返回这个流使用的编码方式

    3.例子

      实现向文件中写入字符串,写入中文,写入数字等。注意Reader和Writer是用来的字符进行写入的,如果直接将int型数据作为参数的话,是不会写入数字的,而是现将数字按照ascll码表转换为相应的字符,然后再写入。要想实现数字和中文的写入,必须要用String为参数的Write。

    FileWriter写入例子:

    import java.io.FileWriter;
    import java.io.IOException;
    
    public class FileTest {
        public static void main(String[] args) throws IOException{
            String filePath = "G:\\test2.txt";
            FileWriter fw = new FileWriter(filePath);
    
            String str="sdndanudn中华人民共和国主席,daduca1266d8523189588";
            int type = 103658;
            char ch = 'A';
    
            fw.write(str);
            fw.write('\n');
            fw.write(type+"");                     //若直接用type作为参数,写入的是type按ascll码对应的字符
            fw.write('\n');                        //换行符也可以直接写入
            fw.write(ch);                          //字符可以直接写入
            fw.flush();
            fw.close();
        }
    }
    

    FileReader例子代码:

    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    public class FileTest {
        public static void main(String[] args) throws IOException{
            String filePath = "G:\\test2.txt";                             //文件路径
            FileReader fd = new FileReader(filePath);                      //构造FileReader     
    
            char[] chs = new char[1024];      
            while(fd.read(chs) != -1){                                     //每次读1024个字符
                System.out.print(chs);
            }
        }
    }
    

    运行结果:
    写入文件
    写入文件

    文件读出
    读出文件

    展开全文
  • FileReader简介

    千次阅读 2019-06-13 15:46:12
    FileReader是一种异步文件读取机制,结合input:file可以很方便的读取本地文件。
  • FileReader详解

    千次阅读 2018-04-13 21:23:58
    前言:FileReader是一种异步文件读取机制,结合input:file可以很方便的读取本地文件。input:file在介绍FileReader之前,先简单介绍input的file类型。&lt;input type="file" id="inputBox"&...
  • 1、FileReader接口的方法 FileReader接口有4个方法,其中3个用来读取文件,另一个用来中断读取。无论读取成功或失败,方法并不会返回读取结果,这一结果存储在result属性中。   FileReader接口的方法 方法名 ...
  • FIleReader

    千次阅读 2019-04-02 10:04:05
    FIleReader HTML5 参考链接:...使用FileReader对象,web应用程序可以异步的读取存储在用户计算机上的文件(或者原始数据缓冲)内容,可以使用File对象或者Blob对象来指定所要读取的文件或数据...
  • HTML5之FileReader的使用

    万次阅读 多人点赞 2013-05-23 22:46:06
    HTML5定义了FileReader作为文件API的重要成员用于读取...FileReader的使用方式非常简单,可以按照如下步骤创建FileReader对象并调用其方法: 1.检测浏览器对FileReader的支持 if(window.FileReader) { var fr =
  • FileReader 文件操作

    千次阅读 2019-07-16 14:17:51
    FileReader html5 中新增的⽂件操作: File:代表⼀个⽂件对象 FileList:代表⼀个⽂件列表对象,类数组 FileReader:⽤于从⽂件中读取数据 FileWriter:⽤于向⽂件中写出数据 调⽤ fileReader 对象的⽅法 ...
  • FileReader

    2013-06-13 12:19:25
    FileReader testpublic static String fileRead(String filePath){ StringBuilder result = new StringBuilder(); File src = new File(filePath); FileReader fread = null; BufferedReader re = null; ...
  • FileReader

    2018-12-26 17:47:47
    FileReader就是html5为我们提供的读取文件的api。 它的作用就是把文本流按指定... 该方法可以取消 FileReader 的读取操作,触发之后 readyState 为已完成  2.readAsArrayBuffer()  用于启动读取指定的 Blob 或 F...
  • FileReader

    2019-08-17 11:47:41
    什么是FileReader接口? 文章目录什么是FileReader接口?创建读取文件对象FileReader接口的方法FileReader接口事件FileReader接口的使用 用来把文件读入内存,并且读取文件中的数据。FileReader接口提供了一个异步...
  • FileReader

    2017-12-19 23:48:55
    package ioexample; import java.io.FileNotFoundException;...import java.io.FileReader; import java.io.IOException; public class TestFileReader {  public static void main(String[] args
  • FileReader

    2019-08-19 11:33:43
    什么是FileReader接口? 文章目录什么是FileReader接口?创建读取文件对象FileReader接口的方法FileReader接口事件FileReader接口的使用 用来把文件读入内存,并且读取文件中的数据。FileReader接口提供了一个异步...
  • fileReader

    2019-03-11 17:55:00
    最近做的 react项目中用到了 FileReader 记录一下 ` //首先判断你的浏览器是否支持FileReader接口: if( typeof FileReader == "undefined" ){ alert( "您的浏览器不支持FileReader!" ); }else{ // do FileReader ...
  • FileReader

    2019-10-01 08:38:41
    FileReader 语法 var reader = new FileReader() 属性 FileReader.error 一个 DOMException ,表示在读取文件时发生的错误。 FileReader.readyState 表示 FileReader 状态的数字 常量名值描述 ...
  • FileReader

    2018-04-22 14:08:14
    public class test20180422FileReader { public static void main(String[] args) { //继承基类reader,inputstreamreader //是一个操作字符流的便捷类 //主要方法有 //1.构造方法FileReader(File file) ...
  • FileReader

    2017-02-16 23:02:00
    import java.io.FileReader; import java.io.IOException; /* 字节流:字节流读取的是文件中的二进制数据,读到的数据并不会帮你转换成你看得懂的字符。 字符流: 字符流会把读取到的二进制的数据进行对应...
  • 我用流存的时候是UTF-8,但是使用FileReader 读的时候,竟然不乱码。。为什么呢?难道FileReader不是GBK格式吗? ``` public static void main(String[] args) throws Exception { //writFile(); ...

空空如也

1 2 3 4 5 ... 20
收藏数 103,591
精华内容 41,436
关键字:

filereader