`

java 输入流和输出流 传入相同文件时

阅读更多
java.io.BufferedReader和java.io.BufferedWriter类各拥有8192字符的缓冲区。当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并置入缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取。如果缓冲区数据不足,才会再从文件中读取,使用BufferedWriter时,写入的数据并不会先输出到目的地,而是先存储至缓冲区中。如果缓冲区中的数据满了,才会一次对目的地进行写出。

public static void main(String[] args) throws Exception{

   
1   File file = new File("d:\\test\\20150401_001");
2  File fil1 = new File("d:\\test\\20150401_001");
3  BufferedReader       reader = new BufferedReader( new FileReader( file));
4  BufferedWriter       writer = new BufferedWriter( new FileWriter( fil1));
    StringBuffer         buffer = new StringBuffer();
    String tmp = reader.readLine();
        while( tmp != null ){
            buffer.append(tmp.trim() + "\n");
        tmp = reader.readLine();
        }
    System.out.println(buffer.toString());

    }

当3,4行代码执行时,第4行代码会把路径下的文件设置为空文件。后面代码while不再进入,打印出来为'';
如果想对一个文件进行操作,输出后文件路径,文件名保持不变,应该如例:

BufferedReader       reader = new BufferedReader( new FileReader( new File(fileName)));
      
       
        StringBuffer         buffer = new StringBuffer();
       
        String tmp = reader.readLine();
        while( tmp != null ){
            buffer.append(tmp.trim() + "\n");
        tmp = reader.readLine();
        }
        BufferedWriter       writer = new BufferedWriter( new FileWriter( new File(fileName)));
      
        writer.write( );





0
0
分享到:
评论

相关推荐

    使用Java多线程实现下载多个文件.txt

    - 下载过程是通过循环读取输入流并写入输出流实现的。使用了一个字节数组`buffer`来存储每次读取的数据。 #### 四、关键步骤解读 1. **初始化线程**: - 首先,根据传入的URL数组创建相应数量的`DownloadThread`...

    Android应用程序中读写txt文本文件的基本方法讲解

    4. **关闭流**:读取完成后,确保关闭输入流以释放资源。 ```java fis.close(); ``` 接下来,我们看下如何写入txt文件: 1. **获取Context对象**:与读取相同,获取`Context`对象。 2. **使用openFileOutput()...

    thinking in java 第三版(中文版) 和第四版(英文版)

    7. **输入/输出流**:Java的I/O系统允许程序进行文件操作和网络通信,包括字节流、字符流、缓冲流、对象序列化等。 8. **反射**:Java的反射机制允许在运行时动态地获取类的信息并操作类的对象。 9. **枚举**:...

    孙卫琴《Java面向对象编程》ppt 和源代码

    - **输入流与输出流**:Java的I/O系统基于流的概念,用于处理数据的读取和写入。 - **文件操作**:包括文件的创建、读取、写入、追加以及删除等操作。 - **缓冲流**:通过BufferedReader和BufferedWriter等类提高...

    java-io-decorator.pdf

    通过组合不同类型的装饰者,我们可以构建出满足各种需求的输入输出流,而不必创建大量的子类。这种设计使得Java的IO库在功能强大且多样化的同时,仍保持着较好的可维护性和易用性。 参考文献: - 廖雪峰. 深入 Java...

    java 习题

    6. ×,Java 流不仅涉及文件,还包括内存和其他数据源的输入输出。 7. ×,Java Applet 可以在没有图形界面的环境中工作,如 AppletViewer。 8. √,用户自定义的图形元素可以响应用户动作。 9. √,异常可能导致...

    java写的画板

    (5)打开图形功能:利用对象输入流,将容器对象读入,然后将容器里面的图形对象在画板上绘制出来 (6)新建文件功能:新建文件,将画板上绘制的内容清空(清空之前可以确认是否需要进行保存)清屏(重绘)功能依次方法...

    java程序填空题.doc

    - Java输入输出:`Scanner`类用于从键盘读取输入,`BufferedReader`和`FileReader`用于读取文件。 - 方法重载:在同一类中创建具有相同名称但参数不同的方法。 - 类与对象:定义类,使用构造函数初始化对象,以及...

    2010华为java面试题华为java面试题华为java面试题华为java面试题华为java面试题

    根据给定的文件信息,我们可以总结出一系列与2010年华为Java面试相关的知识点,这些知识点涵盖了Java语言的基础概念、语法结构、类与对象、访问控制、异常处理、数据类型转换、编码标准以及面向对象编程的核心原则。...

    2023最新java面试题附带答案详解,代码,word文档

    8. **输入/输出流**:读取字符文件通常使用`FileInputStream`来打开文件,然后使用`BufferedReader`或者`DataInputStream`进行读取。多重继承在Java中通过接口实现。 9. **线程**: - 创建线程可以实现`Runnable`...

    Java零基础 - HelloWorld程序.md

    - **类名和文件名一致**:在Java中,每个公共类都必须定义在一个与其名称相同且扩展名为 `.java` 的文件中。 - **编译与运行**:在编译过程中如果出现错误,通常是因为代码有语法问题或者类名与文件名不匹配等原因...

    java 课件 初学者使用

    - **文件操作**:如何读写文件,了解File类和IO流的概念。 - **缓冲区**:使用BufferedReader和BufferedWriter提高输入输出效率。 6. **多线程**: - **线程的创建**:通过继承Thread类或实现Runnable接口创建...

    职工星系管理java

    在Java中,这通常涉及`File`类、`BufferedReader`或`BufferedWriter`等流类的使用,以进行文件的读写操作。 7. **菜单驱动的用户界面**:`caidan()`方法负责输出系统菜单,提供用户交互界面。这种设计使得用户可以...

    thinkinjava源码-ThinkingInJava:用Java源代码思考

    输入流数据源 字节数组、String对象、文件、管道(暂时没有接触过)、一个由其他种类的流组成的序列、网络 每一个数据源都有其对应的子类 ByteArrayInputStream(字节数组,字节数组即代表内存缓冲区,允许将内存缓冲区...

    java课件

    - **流的概念**:输入流和输出流处理数据传输,如FileInputStream和FileOutputStream。 - **缓冲区**:NIO(New IO)引入缓冲区,提高I/O操作效率。 - **字符编码**:处理文本文件时,需注意字符编码问题,如GBK...

    java 复习材料

    - `InputStream`:字节输入流的基类。 - `OutputStream`:字节输出流的基类。 - `Reader`:字符输入流的基类。 - `Writer`:字符输出流的基类。 #### 窗体的布局管理器 - `FlowLayout`:将组件按添加顺序从左到右、...

Global site tag (gtag.js) - Google Analytics