`
jayxigua
  • 浏览: 21759 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类

java代码笔记2010-06-11:java_x_文件_字节流,创建一个一个文件目录,在该目录下创建一个文件 txt, 然后写入内容进去, 再读取文件.

阅读更多

File f1 = new File("E:" + File.separator + "jay-x-program"
    + File.separator + "myJ2se" + File.separator + "src"
    + File.separator + "jay_x_20100611_thread_file");

这个是我的路径,如果大家需要运行这个小程序的话,需要把这个路径改成自己的文件夹路径。

 

/*创建一个一个文件目录,
 在该目录下创建一个文件 txt
 然后写入内容进去,
 再读取文件,read() 和read(byte[] b)
 显示读取后文件的各类信息*/
package jay_x_20100611_thread_file;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;

public class java_x_文件_字节流 {
 public static void main(String[] args) {

  // File.separator的使用。
  File f1 = new File("E:" + File.separator + "jay-x-program"
    + File.separator + "myJ2se" + File.separator + "src"
    + File.separator + "jay_x_20100611_thread_file");
  System.out.println("f1是否是一个文件" + f1.isFile());
  System.out.println("f1是否是一个目录" + f1.isDirectory());
  System.out.println("该文件的路径" + f1.getAbsolutePath());
  String str[] = f1.list();
  System.out.println("显示该文件下的所有子文件:");
  for (int i = 0; i < str.length; i++) {
   System.out.println(str[i]);
  }
  File f2 = new File(f1, "text1.txt");

  try {
   if (!f2.exists()) {
    f2.createNewFile();
   } else {
    System.out.println("该文件的路径" + f2.getAbsolutePath());
    System.out.println("上次修改是:" + f2.lastModified());
    System.out.println("上次修改是:" + new Date(f2.lastModified()));
    String s = new String("将string转换成 字节数组!");
    String s2 = new String("第二次输入");
    byte[] bs = s.getBytes();
    byte bs2[] = s2.getBytes();
    FileOutputStream fos = new FileOutputStream(f2);
    System.out.println("写入之前" +
      "\t的字节数" + f2.length());
    fos.write(bs);
    System.out.println("完事后的字节数" + f2.length());

    System.out
      .println("\n\n\n接下来就是读取文件内容了:" + f2.getAbsolutePath());
    FileInputStream fis = new FileInputStream(f2);

    int b;
     System.out.println("read():");
     while ((b = fis.read()) != -1) {
     char c = (char) b;
     System.out.print(c);
     }
     System.out.println("测试read()的返回值:" + b);// -1
    fos.write(bs2);
    // 问题:fis.read()每次读了一次后会显示到下一行,不能够重复应用!
    System.out.println("\n\n\n(byte[] b, int off, int len):");
    byte[] bs3 = new byte[100];
    int length = (int) f2.length();
    int b2;
    while ((b2 = fis.read(bs3, 0, length)) != -1) {
     /*
      * int read(byte[] b, int off, int len) 从此输入流中将最多 len
      * 个字节的数据读入一个字节数组中
      */
     System.out.println("(b2 = fis.read(bs3,0,length))"
       + (b2 = fis.read(bs3, 0, length)));// -1
     System.out.println("测试read(bs3, 0, length)的返回值:" + b2);// -1
    }
    // 将字节数组转换成字符串
    String str3 = new String(bs3, 0, length);
    System.out.println("String(bs3,0,length)结果:" + str3);
    // String str4 = new String(bs3, 0, b2);
    // System.out.println("String(bs3,0,b2)结果:" + str4);
    // Exception in thread "main"
    // java.lang.StringIndexOutOfBoundsException: String index out
    // of range: -1
    /*
     * void write(byte[] b) 将 b.length 个字节从指定字节数组写入此文件输出流中。 void
     * write(byte[] b, int off, int len) 将指定字节数组中从偏移量 off 开始的 len
     * 个字节写入此文件输出流。 void write(int b) 将指定字节写入此文件输出流。
     */
   }
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

 }

}

以上是我最近学习Java记录的笔记和自己参照书本和老师所讲编写的代码和注释。
1422942883这是我的QQ,欢迎各位学习编程的同学加我好友,或者给我的个人主页留言(http://jayxigua.iteye.com/),一起讨论,学习。呵呵。

1
2
分享到:
评论
2 楼 jayxigua 2010-06-13  
恩,而且相对而言,理解起来也是有一定难度的。
而且很有用的一块知识。
1 楼 lucky16 2010-06-12  
IO, 每个人Javaer 都应该好好学习的东西!

相关推荐

    个人笔记--Java_API

    - 字节流:处理字节数据。 - 字符流:处理字符数据。 - **创建**:`new FileInputStream("file.txt");` **4.3 FileInputStream与FileOutputStream** - **常用方法**: - `read()`:读取字节。 - `write(byte[]...

    java笔记--

    它以其“一次编写,到处运行”的特性而闻名,这意味着编写好的Java程序可以在任何支持Java的平台上运行,无需重新编译。本笔记将深入探讨Java的基础知识和核心概念。 1. **Java基础** - **语法**:Java语法与C++...

    Java_se基础毕向东老师全程笔记

    根据给定文件的信息,我们可以总结出“Java_SE基础毕向东老师全程笔记”中涉及的关键知识点。这份笔记由毕向东老师授课,涵盖了Java的基础知识及进阶主题,具体章节包括编程基础、数组、面向对象程序设计等多个方面...

    java笔记 java笔记

    - **方法(Method)**:函数在Java中的另一种说法,用来执行特定任务的一段代码。 - **包(Package)**:用于组织类和接口的命名空间。 #### 3. 定义、关键字和类型 ##### 3.1 注释的三种形式 - **单行注释**:使用`/...

    java笔记代码

    这篇笔记和代码集合旨在为学习者提供一个系统化的Java学习路径,特别是对于初学者,它将帮助你从基础到进阶,逐步掌握Java的核心概念和技术。 1. **Java基础** - **数据类型**:Java分为基本数据类型和引用数据...

    java学习笔记-----给java初学者

    Java的I/O流系统支持读写文件、网络通信等操作,包括字节流、字符流、对象流等。 8. **多线程** Java内置了对多线程的支持,可以创建和管理多个并发执行的任务,提高程序效率。 9. **泛型** 泛型引入了类型参数...

    java IO流学习笔记

    这里`read()`方法返回一个整型值,这是因为字节流中每个字节的范围是从-128到127,而Java中的`byte`类型只能表示-128到127之间的值。当文件读取完毕后,`read()`方法会返回-1,表示文件结束。 以上就是关于Java IO...

    JAVA基础笔记

    - **Existing Project into Workspace**:在Eclipse中,这个操作指的是将一个现有的项目(即已经存在的代码工程)导入到当前的工作空间中,方便进行编辑、调试等操作。 - **File**:文件菜单,提供了对文件和项目的...

    JAVA经典教材笔记

    ### JAVA经典教材笔记知识点梳理 #### 第一章:JAVA概述及开发环境搭建 - **Java学习概述** - Java作为一种广泛使用的编程语言,其学习路径包括掌握基本语法、理解面向对象编程思想、熟悉标准库使用等。 - **JAVA...

    毕向东java基础 笔记 整理

    根据给定的信息,我们可以将这份笔记分为几个主要的知识点进行详细的阐述。 ### 一、Java 语法基础 #### 1. 变量 - **定义**:变量是用于存储数据值的基本单元。 - **类型**:Java 中的变量类型包括基本类型(如 `...

    java_Java_学习笔记.zip

    - 继承:一个类可以继承另一个类的属性和行为,实现代码复用。 - 多态:同一消息可以有多种不同的响应方式,体现了“鸭子理论”。 6. **接口与抽象类**: - 接口:完全抽象的类型,只包含常量和抽象方法。 - ...

    java精华学习笔记

    - **继承**: 一个类可以继承另一个类的特性,实现代码复用。 - **多态**: 同一方法可以有不同的表现形式,依赖于调用它的对象。 - **抽象类与接口**: 抽象类不能实例化,用于定义通用行为;接口则完全由抽象方法...

    良葛格Java学习笔记

    - **文件操作**:创建、读写、删除文件,以及目录操作。 - **缓冲区**:BufferedReader、BufferedWriter等提高读写效率。 - **对象序列化**:将对象转换为字节流存储或网络传输。 7. **多线程** - **线程的创建...

    java笔记(基础)

    当输入一个命令时,系统会在这些路径下查找对应的程序。 - **classpath**:Java虚拟机在运行时查找类文件的路径。如果不设置,JDK5.0及以后的版本默认会在当前目录和JDK的lib目录下查找。 理解这些基础概念对于...

    Java学习笔记-IO篇

    ### Java学习笔记-IO篇 #### 一、流的基本概念及分类 在Java中,**流**(Stream)是用于处理或传输数据的一种方式。它将数据视为一系列连续的字节序列或者字符序列进行处理。根据不同的标准,流可以分为多种类型:...

    java学习笔记-html-ssh-js

    【Java学习笔记】 在Java的学习旅程中,深入理解其核心概念是至关重要的。Java是一种广泛使用的面向对象的编程语言,以其跨平台性、高效性和稳定性而受到青睐。本笔记集合将带你逐步走进Java的世界,从基础语法到...

    java学习笔记整理

    ### Java学习笔记整理 #### 1. Java简介 ##### 1.1 计算机编程和开发语言 计算机系统由硬件系统和软件系统组成。软件系统又进一步细分为系统软件和应用软件。其中,系统软件包括操作系统、编译系统、数据库系统等...

    Java开发笔记

    4. **反射执行**: 反射是Java中的一个重要特性,它允许程序在运行时检查自身,并且可以“反射”地调用方法或构造函数。 - **示例**: 获取类的所有方法并执行。 ```java Method[] methods = SomeClass.class....

Global site tag (gtag.js) - Google Analytics