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/),一起讨论,学习。呵呵。
分享到:
相关推荐
- 字节流:处理字节数据。 - 字符流:处理字符数据。 - **创建**:`new FileInputStream("file.txt");` **4.3 FileInputStream与FileOutputStream** - **常用方法**: - `read()`:读取字节。 - `write(byte[]...
它以其“一次编写,到处运行”的特性而闻名,这意味着编写好的Java程序可以在任何支持Java的平台上运行,无需重新编译。本笔记将深入探讨Java的基础知识和核心概念。 1. **Java基础** - **语法**:Java语法与C++...
根据给定文件的信息,我们可以总结出“Java_SE基础毕向东老师全程笔记”中涉及的关键知识点。这份笔记由毕向东老师授课,涵盖了Java的基础知识及进阶主题,具体章节包括编程基础、数组、面向对象程序设计等多个方面...
- **方法(Method)**:函数在Java中的另一种说法,用来执行特定任务的一段代码。 - **包(Package)**:用于组织类和接口的命名空间。 #### 3. 定义、关键字和类型 ##### 3.1 注释的三种形式 - **单行注释**:使用`/...
这篇笔记和代码集合旨在为学习者提供一个系统化的Java学习路径,特别是对于初学者,它将帮助你从基础到进阶,逐步掌握Java的核心概念和技术。 1. **Java基础** - **数据类型**:Java分为基本数据类型和引用数据...
Java的I/O流系统支持读写文件、网络通信等操作,包括字节流、字符流、对象流等。 8. **多线程** Java内置了对多线程的支持,可以创建和管理多个并发执行的任务,提高程序效率。 9. **泛型** 泛型引入了类型参数...
这里`read()`方法返回一个整型值,这是因为字节流中每个字节的范围是从-128到127,而Java中的`byte`类型只能表示-128到127之间的值。当文件读取完毕后,`read()`方法会返回-1,表示文件结束。 以上就是关于Java IO...
- **Existing Project into Workspace**:在Eclipse中,这个操作指的是将一个现有的项目(即已经存在的代码工程)导入到当前的工作空间中,方便进行编辑、调试等操作。 - **File**:文件菜单,提供了对文件和项目的...
### JAVA经典教材笔记知识点梳理 #### 第一章:JAVA概述及开发环境搭建 - **Java学习概述** - Java作为一种广泛使用的编程语言,其学习路径包括掌握基本语法、理解面向对象编程思想、熟悉标准库使用等。 - **JAVA...
根据给定的信息,我们可以将这份笔记分为几个主要的知识点进行详细的阐述。 ### 一、Java 语法基础 #### 1. 变量 - **定义**:变量是用于存储数据值的基本单元。 - **类型**:Java 中的变量类型包括基本类型(如 `...
- 继承:一个类可以继承另一个类的属性和行为,实现代码复用。 - 多态:同一消息可以有多种不同的响应方式,体现了“鸭子理论”。 6. **接口与抽象类**: - 接口:完全抽象的类型,只包含常量和抽象方法。 - ...
- **继承**: 一个类可以继承另一个类的特性,实现代码复用。 - **多态**: 同一方法可以有不同的表现形式,依赖于调用它的对象。 - **抽象类与接口**: 抽象类不能实例化,用于定义通用行为;接口则完全由抽象方法...
- **文件操作**:创建、读写、删除文件,以及目录操作。 - **缓冲区**:BufferedReader、BufferedWriter等提高读写效率。 - **对象序列化**:将对象转换为字节流存储或网络传输。 7. **多线程** - **线程的创建...
当输入一个命令时,系统会在这些路径下查找对应的程序。 - **classpath**:Java虚拟机在运行时查找类文件的路径。如果不设置,JDK5.0及以后的版本默认会在当前目录和JDK的lib目录下查找。 理解这些基础概念对于...
### Java学习笔记-IO篇 #### 一、流的基本概念及分类 在Java中,**流**(Stream)是用于处理或传输数据的一种方式。它将数据视为一系列连续的字节序列或者字符序列进行处理。根据不同的标准,流可以分为多种类型:...
【Java学习笔记】 在Java的学习旅程中,深入理解其核心概念是至关重要的。Java是一种广泛使用的面向对象的编程语言,以其跨平台性、高效性和稳定性而受到青睐。本笔记集合将带你逐步走进Java的世界,从基础语法到...
### Java学习笔记整理 #### 1. Java简介 ##### 1.1 计算机编程和开发语言 计算机系统由硬件系统和软件系统组成。软件系统又进一步细分为系统软件和应用软件。其中,系统软件包括操作系统、编译系统、数据库系统等...
4. **反射执行**: 反射是Java中的一个重要特性,它允许程序在运行时检查自身,并且可以“反射”地调用方法或构造函数。 - **示例**: 获取类的所有方法并执行。 ```java Method[] methods = SomeClass.class....