文件IO操作

问题描述

操作文件有很多类都可以:RandomAccessFile字节流(FileOutputStreamFileInputStream)字符流(FileReaderFileWriter),请问它们间有什么区别,分别在什么场合用,谢谢

解决方案

解决方案二:
该回复于2011-04-12 11:21:32被版主删除
解决方案三:
你已经说了是两大类:字节流stream和字符流Reader用字符流的地方都可以用字节流,比如从txt文件中读取字符串,字符流方便,但是用字节流的地方未必能用字符流,比如图片拷贝之类其它就是怎么组合使用,提高IO效率的问题了,比如一般都是用buffer包装一下
解决方案四:
RandomAccessFile:此类的实例支持对随机访问文件的读取和写入publicclassFileReaderextendsInputStreamReaderInputStreamReader是字节流通向字符流的桥梁:它使用指定的charset读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。每次调用InputStreamReader中的一个read()方法都会导致从底层输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节。字节流、字符流楼上的正解。好好琢磨课本吧,还有查查API,应该还有什么的对象流。。。
解决方案五:
还是不太清楚什么时候用RandomAccessFile什么时候用文件的字节流或字符流?
解决方案六:
字节流字符流的使用你看看书和API难道你使用字符流就可以读取一个图片文件?不能吧仔细想想在API中你查一下RandomAccessFile构造它继承关系是什么再怎么读取和写入都是字节流的操作
解决方案七:
该回复于2011-04-12 13:42:52被版主删除
解决方案八:
先百度
解决方案九:
RandomAccessFile:此类的实例支持对随机访问文件的读取和写入publicclassFileReaderextendsInputStreamReaderInputStreamReader是字节流通向字符流的桥梁:它使用指定的charset读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。每次调用InputStreamReader中的一个read()方法都会导致从底层输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节。
解决方案十:
能否讲讲各类间的关系
解决方案十一:
百度吧!!!!!!!!!!!!!!!!!!!
解决方案十二:
引用4楼sunrisefe的回复:

还是不太清楚什么时候用RandomAccessFile什么时候用文件的字节流或字符流?

RandomAccessFile、文件字节流一般用于二进制文件文件字符流一般用于文本文件当然了,文本文件也能使用字节流来读取。但是二进制文件肯定是不能使用字符流来读取的。
解决方案十三:
很好的区分方法:你用Windows自带的那个记事本打开一个文件,如果你能看得出这里面是字的话那就是文本文件,如果是乱码的话那就是二进制文件。
解决方案十四:
你可以看一下APIRandomAccessFile:此类的实例支持对随机访问文件的读取和写入,随机访问文件的行为类似存储在文件系统中的一个大型byte数组然后你在看一下RandomAccessFile中的方法应该明白了吧,RandomAccessFile类中方法比较丰富,可以读取写入任何数据类型的数据,而且写出来的代码也简洁。FileOutputStreamFileInputStream类中的写入写出方法相对RandomAccessFile来说就少得很了,所以关键用哪个类还要看你的需求。怎么方便就怎么用。一般IO操作追求方便和高效。所以具体怎么方便怎么高效就怎么用了。

时间: 2024-08-03 21:59:26

文件IO操作的相关文章

【Linux系统编程】文件IO操作

文件描述符 在 Linux 的世界里,一切设备皆文件.我们可以系统调用中 I/O 的函数(I:input,输入:O:output,输出),对文件进行相应的操作( open().close().write() .read() 等). 打开现存文件或新建文件时,系统(内核)会返回一个文件描述符,文件描述符用来指定已打开的文件.这个文件描述符相当于这个已打开文件的标号,文件描述符是非负整数,是文件的标识,操作这个文件描述符相当于操作这个描述符所指定的文件. 程序运行起来后(每个进程)都有一张文件描述符

利用java io操作多个文件

问题描述 利用java io操作多个文件 A文件: A B C D B文件: 1 2 3 4 利用java io操作A B 文件,得出 C文件: A 1234 B 1234 C 1234 D 1234 或者 A 1 A 2 A 3 A 4 B 1 B 1 B 2 B 3 B 4 ---- 大神求解 解决方案 第一种合并方式比较简单,A文件的逐行+B文件的全部内容,所以可以这样实现:先将B文件读入内存中存入中间变量中,然后逐行遍历A文件写入C文件. 参考实现如下,合并时注意添加必要的空格: imp

流-Android 关于操作文件IO的相关问题

问题描述 Android 关于操作文件IO的相关问题 大神们给我看看下面我这个方法哪里错了?为什么总是移动文件失败!下面是输出打印的两句路径: /storage/sdcard0/dcim/Camera/IMG_20151127_094856.jpg /storage/sdcard0/baidu/searchbox/preset/preset4.2/pic/ /** * 移动至指定文件夹 * @param path * @param newPath * @return */ public stat

如何解决:文件复制-C#实现的IO操作时出现异常 “请求的操作无法在使用用户映射区域打开的文件上执行”

问题描述 C#实现的IO操作时出现异常 "请求的操作无法在使用用户映射区域打开的文件上执行" C#实现的IO操作时出现异常 "请求的操作无法在使用用户映射区域打开的文件上执行",请大神指教! 解决方案 http://blog.itpub.net/29867/viewspace-321913/http://blog.csdn.net/yulongblue/article/details/6306203 #*# jetty->请求的操作无法在使用用户映射区域打开的

.NET中的IO操作之文件流用法分析_实用技巧

本文实例讲述了.NET中的IO操作之文件流用法.分享给大家供大家参考.具体分析如下: 读操作 复制代码 代码如下: //1.创建文件流 FileStream fsRead =new FileStream("1.txt",FileMode.Open); //2.创建缓冲区,正常情况下,是不会直接等于文件大小的.这里只有读,所以就这么干了. byte[] bytes =new byte[fsRead.Length]; //3.开始读取, 返回值是读取到的长度. int r =fsRead.

Java中对文件的操作

Java中对文件的操作 java中提供了io类库,可以轻松的用java实现对文件的各种操作.下面就来说一下如何用java来实现这些操作. 1.新建目录 <%@ page contentType="text/html;charset=gb2312"%> <% String filePath="c:/aaa/"; filePath=filePath.toString();//中文转换 java.io.File myFilePath=new java.i

实例讲解使用JDOM对XML文件进行操作

本文着重介绍在应用程序中如何使用JDOM对XML文件进行操作,要求读者具有基本的JAVA语言基础. XML由于其可移植性,已经成为应用开发中必不可少的环节.我们经常会把应用程序的一些配置文件(属性文件)写成XML的格式(当然,也可以用property文件而不用XML文件),应用程序通过XML的访问类来对其进行操作.对XML进行操作可以通过若干种方法,如:SAX, DOM, JDOM, JAXP等,JDOM由于其比较简单实用而被开发人员普遍使用. 本文主要分两部分,第一部分介绍如何把XML文件中的

Spring的优秀工具类盘点,第1部分: 文件资源操作和Web相关

Spring 不但提供了一个功能全面的应用开发框架,本身还拥有众多可以在程序编写时直接使用的工具类,您不但可以在 Spring 应用中使用这些工具类,也可以在其它的应用中使用,这些工具类中的大部分是可以在脱离 Spring 框架时使用的.了解 Spring 中有哪些好用的工具类并在程序编写时适当使用,将有助于提高开发效率.增强代码质量. 在这个分为两部分的文章中,我们将从众多的 Spring 工具类中遴选出那些好用的工具类介绍给大家.第 1 部分将介绍与文件资源操作和 Web 相关的工具类.在

C#文件、文件夹操作

using System; using System.Collections.Generic; using System.Linq; using System.Windows; using System.Text; using System.IO; //文件操作所属的命名空间. namespace FileOperate { public class FileOperate//对文件的操作类 { //删除文件方法. public bool DeletFile(string Filefullpat