×

filereader和filewriter是处理流

filereader和filewriter是处理流(我本来想用FileReader类和FileWriter类实现图形文件的复制但这个程序并不能实现 图形的复制)

admin admin 发表于2023-08-09 13:55:51 浏览47 评论0

抢沙发发表评论

本文目录

我本来想用FileReader类和FileWriter类实现图形文件的复制但这个程序并不能实现 图形的复制

建议看一下apache FileUtils.copyFile的源码,是可以copy图片的,你说的的图形文件是图片吧?public class CopyFile { public static void doCopyFile() throws IOException{ File srcFile = new File(“e:\\test.jpg“); File destFile = new File(“e:\\demo\\test.jpg“); FileInputStream input = new FileInputStream(srcFile); try { FileOutputStream output = new FileOutputStream(destFile); try { byte buffer = new byte; int n = 0; while (-1 != (n = input.read(buffer))) { output.write(buffer, 0, n); } } finally { try { if (output != null) { output.close(); } } catch (IOException ioe) { // ignore } } } finally { try { if (input != null) { input.close(); } } catch (IOException ioe) { // ignore } } }}

java里面的节点流和处理流是什么意思a

在JAVA中的流按流动方向可以分为输入流及输出流两种,按流的处理位置可分为节点流和包装流。 输入流,输出流是以程序为参考点来说的,所谓的输入流就是程序从中获取数据的流,输出流就是程序要其写数据的流。在输入流的一边是程序,而另一边就是流的数据源。而输出流的一边则目标,一边就是程序。其实流可以想像成是一条长河,在上游有一水库提供水源,河边住着一户人,随时都可以从河边取到水,同时,这户人也可以把一些废水倒进河里,使得废水可以流进大海。这里所提到河就是一个数据的流动通道,而水库就好比是计算机上的一切数据源,包括磁盘文件,内存,IO设备,键盘等等,JAVA提供了非常完善的输入流类来把这些数据源挂接到流上使得程序能从这些输入流中获取所需的数据。河边上的用户就是程序,它能随时随地从流中取得数据,只要有数据源挂接到这个通道上可以。而大海就是程序处理完数据后要流向的目的地,这些目的地包抱磁盘文件,内存,IO设备,显示器等,这些目的地只是相对程序来说的,它们也可能是别的进程的输入流。 如下例子,将数据输出到别的文件,再从文件中读出数据 File f=new File(“1.test”);Try { FileOutputStream out=new FileOutStream(f); Byte buf=”hello world”.getBytes(); Out.write(buf); Out.close(); } catch(Exception e) { System.out.println(e.getMessage()); } try { FileInputStream in=new FileInputStream(f); byte buf=new byte; int len=in.read(buf); System.out.println(new String(buf,0,len)); } catch(Exception e) { System.out.println(e.getMessage()); } 程序用于直接操作目标设备所对应的类叫节点流类,程序也可以通过一个间接流类去调用节点流类,以达到更加灵活方便地读写各种类型的数据,这个间接流类就是包装流类。

java中如何实现文件字符流FileReader和FileWriter

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class FileReaderTest{ public static void main(String args) { try { FileWriter fw=new FileWriter(“F:\\io\\abc.txt“); BufferedWriter bw=new BufferedWriter(fw); bw.write(“大家好“); bw.newLine(); bw.write(“我今天很高兴“); bw.close(); fw.close(); FileReader fd=new FileReader(“F:\\io\\abc.txt“); BufferedReader br=new BufferedReader(fd); String s; while((s=br.readLine())!=null) { System.out.println(s); } br.close(); fd.close(); } catch (FileNotFoundException e) { System.out.println(“操作的文件不存在“); } catch(IOException e) { System.out.println(“发生IO操作异常“); } }}

java中filereader和filewriter

1、看来是初学者。2、filereader和filewriter等流,都是最基本的I/O流,只能正确读写纯文本或纯二进制之类的字节流,像docx,jpg都是不同的,需要专门读写jar包来操作。3、在网上搜索下“java 操作doc office”之类的就可以找到答案了。

Java:FileWriter、FileReader有什么用呢

您好,构造方法:FileWriter fw = new FileWriter(String fileName);//创建字符输出流类对象和已存在的文件相关联。文件不存在的话,并创建。如:FileWriter fw = new FileWriter(“C:\\demo.txt“);FileWriter fw = new FileWriter(String fileName,boolean append);//创建字符输出流类对象和已存在的文件相关联,并设置该该流对文件的操作是否为续写。 如:FileWriter fw = new FileWriter(“C:\\demo.txt“,ture); //表示在fw对文件再次写入时,会在该文件的结尾续写,并不会覆盖掉。主要方法: void write(String str) //写入字符串。当执行完此方法后,字符数据还并没有写入到目的文件中去。此时字符数据会保存在缓冲区中。此时在使用刷新方法就可以使数据保存到目的文件中去。 viod flush() //刷新该流中的缓冲。将缓冲区中的字符数据保存到目的文件中去。 viod close() //关闭此流。在关闭前会先刷新此流的缓冲区。在关闭后,再写入或者刷新的话,会抛IOException异常。

java中怎么识别节点流和处理流

按照流是否直接与特定的地方(如磁盘、内存、设备等)相连,分为节点流和处理流两类。节点流:可以从或向一个特定的地方(节点)读写数据。如FileReader.处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如BufferedReader.处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。JAVA常用的节点流有以下几个:文 件 FileInputStream FileOutputStrean FileReader FileWriter 文件进行处理的节点流。字符串 StringReader StringWriter 对字符串进行处理的节点流。数 组 ByteArrayInputStream ByteArrayOutputStreamCharArrayReader CharArrayWriter 对数组进行处理的节点流(对应的不再是文件,而是内存中的一个数组)。管 道 PipedInputStream PipedOutputStream PipedReaderPipedWriter对管道进行处理的节点流。父 类 InputStream OutputStream Reader Writer常用处理流(关闭处理流使用关闭里面的节点流)缓冲流:BufferedInputStrean BufferedOutputStream BufferedReader BufferedWriter增加缓冲功能,避免频繁读写硬盘。转换流:InputStreamReader OutputStreamReader实现字节流和字符流之间的转换。数据流 DataInputStream DataOutputStream 等-提供将基础数据类型写入到文件中,或者读取出来。

用FileReader和FileWriter处理中文时的问题

java的输入输出流都是可以设置编码的,在读取包含汉字的文本时,你可以将输入流的编码设置为GBK格式。你可以尝试以下方式读取文本,希望对你有帮助。 FileInputStream fis = null ; try { fis = new FileInputStream(“文件路径名“); //创建文件输入流 InputStreamReader isr = new InputStreamReader(fis,“GBK“); //指定读取流为GBK编码格式 BufferedReader br = new BufferedReader(isr); //创建字符缓存输入流 String str =““; while((str=br.readLine()) != null){ System.out.println(str); //读取每行文本 } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ if(fis != null){ try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } }

FileReader 类,FileWriter类和FileInputstream ,Fileoutstream的区别是什么

inputstream是字节输入流的抽象类,它的子类fileinputstream一般用于读取文件(包括二进制文件)outputstream是字节输出流的抽象类,它的子类fileoutputstream一般用于文件(包括二进制文件)的写入。

关于 FileWriter 和 OutputStreamWriter

FileReader 和FileWriter分别是InputStreamReader和outputStreamWriter的子类,他们的write和read方法其实是同一个方法。所以没有什么不一样。缓存的话可以考虑使用BufferedReader 和BufferedWriter 这个是带有缓存的封装。FileReader,FileWriter 是读字符的,1个字符是2个字节,16位。OutputStream ,InputStream是读字节的,1个字节是8位。要是读汉字,一个汉字是2个字节,用InputStream读就把汉字活生生的拆一半了,自己可以写程序验证下。字符流主要读文本比较效率。字节流主要读二进制文件,图片就是为了防止出现读取的单位放大,出现无法还原本程序的目的。