package http;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/*
* Read和Write分别对应InputStream和OutputStream
* 前者用于字符流,后者用于字节流
* FileReader和FileWrite分别对应与FileInputStream和FileOutputStream
* BufferedReader和BufferedWrite分别对应与BufferedInputStream和
* BufferedOutputStream
* 此示例实现文本文件的字符读写
*/
public class FileReaderAndBufferedReaderDemo {
public static String read(String fileName) throws IOException {
StringBuilder str = new StringBuilder();
BufferedReader in = new BufferedReader(new FileReader(fileName));
String s;
while ((s = in.readLine()) != null)
str.append(s + '\n');
in.close();
return str.toString();
}
public static void write(String fileName, boolean append)
throws IOException {
BufferedWriter out = new BufferedWriter(
new FileWriter(fileName, append));
out.write("我是dahai!java hello!");
out.close();
}
public static void main(String[] args) {
try {
write("file/test3.txt", false);
System.out.println(read("file/test3.txt"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package http;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;
/*
* DataInputStream用于读取格式化的数据
*/
public class DataInputStreamAndByteArrayInputStreamDemo {
public static void main(String[] args) throws IOException {
DataInputStream in = new DataInputStream(new ByteArrayInputStream(
FileReaderAndBufferedReaderDemo.read("file/test3.txt")
.getBytes()));
while (in.available() != 0)
System.out.print((char) in.readByte());
}
}
package test;
import http.FileReaderAndBufferedReaderDemo;
import java.io.IOException;
import java.io.StringReader;
/*
* StringReader操作的是字符串
*/
public class StringReaderDemo {
public static void main(String[] args) throws IOException {
StringReader in = new StringReader(FileReaderAndBufferedReaderDemo
.read("file/test3.txt"));
int c;
while ((c = in.read()) != -1)
System.out.print((char) c);
}
}
package test;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
/*
* RandomAccessFile直接继承Object,可以进行随机输入和输出,类似于c语言的文件操作
* 要指明以什么方式打开文件,用这个类时要知道文件的排版,该类有读写基本类型和UTF-8字符串
* 的各种方法,可以定位到文件的某一位置进行读写
*/
public class RandomAccessFileDemo {
public static void main(String[] args) throws FileNotFoundException {
RandomAccessFile out = new RandomAccessFile("file/test5", "rw");
try {
out.writeInt(1);
out.writeDouble(3.3);
out.writeChar('a');
out.writeUTF("hello,java!");
out.close();
} catch (IOException e) {
e.printStackTrace();
}
RandomAccessFile in = new RandomAccessFile("file/test5", "r");
try {
in.seek(4);
System.out.println(in.readDouble());
in.seek(4+8+2);
System.out.println(in.readUTF());
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
package test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
/*
* ObjectInputStream(ObjectOutputStream)用于对象的序列化
* 直接对一个对象进行读写,该对象须实现Serializable
*/
public class ObjectInputStreamDemo {
public static void writeObject(String fileName, Object o, boolean isAppend)
throws FileNotFoundException, IOException {
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(
fileName, true));
out.writeObject(o);
out.close();
}
public static Object readObject(String fileName)
throws FileNotFoundException, IOException, ClassNotFoundException {
ObjectInputStream in = new ObjectInputStream(new FileInputStream(
fileName));
Object o = in.readObject();
in.close();
return o;
}
public static void main(String[] args) {
try {
ObjectInputStreamDemo.writeObject("file/object", new Person(),
false);
((Person) ObjectInputStreamDemo.readObject("file/object"))
.display();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
class Person implements Serializable {
private String name = "刘海房liuhaifang";
private int sex = 0;
Person(String name, int sex) {
this.name = name;
this.sex = sex;
}
Person() {
}
void display() {
System.out.println("my name is :" + name);
String s = (sex == 0) ? "男" : "女";
System.out.println(s);
}
}
分享到:
相关推荐
在本Java小项目中,我们聚焦于歌词解析,这是一个典型的文本处理任务,涉及到文件操作、I/O流处理以及集合框架的运用。以下是对这些技术的详细说明: 首先,文件操作是程序与本地文件系统交互的基础。在Java中,...
10. **文件操作**:如果项目还包括将邮件内容保存到本地文件系统,那么需要使用Java的I/O流进行文件读写操作。 综上所述,此项目涵盖了Java邮件处理、网络通信、项目管理和异常处理等多个方面,是Java开发者学习和...
1. **Java标准库JAR**:Java标准库包括了Java基础类、集合框架、网络编程、多线程、I/O流等核心功能。例如,`rt.jar`包含了Java运行时环境的所有类,而`charsets.jar`包含了各种字符集的支持。 2. **Spring框架JAR*...
- **编译源代码**:使用javac命令将.java文件编译成.class文件。 - **运行程序**:使用java命令运行编译后的字节码文件。 - **1.4 classpath的设置**: - **环境变量**:用于指定Java类库的位置,以便JVM能够...
在以后的章节中,作者始终以“启发编程思想,培养编程感觉”为指导,以剖析典型实例、分析源码结构含义、解析常见问题等方式,从高屋建瓴的角度,用通俗易懂的文字,讲解了多线程、常用Java类、Java中的I/O(输入...
- **IO流**:Java提供了丰富的I/O流类库,用于处理数据的读写。 - **字节流**:InputStream和OutputStream家族,处理原始字节数据。 - **字符流**:Reader和Writer家族,处理字符数据,适合处理文本文件。 - **...
在以后的章节中,作者始终以“启发编程的思想,培养编程的感觉”为指导,以剖析典型实例、分析源码结构含义、解析常见问题等方式,从高屋建瓴的角度,用通俗易懂的文字,讲解了多线程、常用Java类、Java中的I/O(输入...
在以后的章节中,作者始终以“启发编程思想,培养编程感觉”为指导,以剖析典型实例、分析源码结构含义、解析常见问题等方式,从高屋建瓴的角度,用通俗易懂的文字,讲解了多线程、常用Java类、Java中的I/O(输入...
4. **NIO(非阻塞I/O)**:在高并发场景下,Java的非阻塞I/O模型,如Selector和Channel,可以提高性能。NIO允许单个线程处理多个连接,这对于聊天室这样的应用尤其重要。 5. **JSP(Java Server Pages)**:标签中...
在以后的章节中,作者始终以“启发编程的思想,培养编程的感觉”为指导,以剖析典型实例、分析源码结构含义、解析常见问题等方式,从高屋建瓴的角度,用通俗易懂的文字,讲解了多线程、常用Java类、Java中的I/O(输入...
在以后的章节中,作者始终以“启发编程思想,培养编程感觉”为指导,以剖析典型实例、分析源码结构含义、解析常见问题等方式,从高屋建瓴的角度,用通俗易懂的文字,讲解了多线程、常用Java类、Java中的I/O(输入...
本资料包"Java常用的插件API整理以及基于JDK的一些方法封装库.zip"主要包含了对Java插件API的详细整理和基于JDK的方法封装库,让我们一起来深入探讨。 首先,插件API(Plugin API)是软件系统中一种允许第三方...
在以后的章节中,作者始终以“启发编程思想,培养编程感觉”为指导,以剖析典型实例、分析源码结构含义、解析常见问题等方式,从高屋建瓴的角度,用通俗易懂的文字,讲解了多线程、常用Java类、Java中的I/O(输入...
在以后的章节中,作者始终以“启发编程思想,培养编程感觉”为指导,以剖析典型实例、分析源码结构含义、解析常见问题等方式,从高屋建瓴的角度,用通俗易懂的文字,讲解了多线程、常用Java类、Java中的I/O(输入...
在以后的章节中,作者始终以“启发编程思想,培养编程感觉”为指导,以剖析典型实例、分析源码结构含义、解析常见问题等方式,从高屋建瓴的角度,用通俗易懂的文字,讲解了多线程、常用Java类、Java中的I/O(输入...
在以后的章节中,作者始终以“启发编程思想,培养编程感觉”为指导,以剖析典型实例、分析源码结构含义、解析常见问题等方式,从高屋建瓴的角度,用通俗易懂的文字,讲解了多线程、常用Java类、Java中的I/O(输入...
Java2核心技术第I卷.基础知识 目录: 译者序 前言 第1章Java程序设计概述 1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语 1.2.1简单性 1.2.2面向对象 1.2. 3分布式 1. 2.4健壮性 1. 2.5安仝...
在以后的章节中,作者始终以“启发编程思想,培养编程感觉”为指导,以剖析典型实例、分析源码结构含义、解析常见问题等方式,从高屋建瓴的角度,用通俗易懂的文字,讲解了多线程、常用Java类、Java中的I/O(输入...
在以后的章节中,作者始终以“启发编程思想,培养编程感觉”为指导,以剖析典型实例、分析源码结构含义、解析常见问题等方式,从高屋建瓴的角度,用通俗易懂的文字,讲解了多线程、常用Java类、Java中的I/O(输入...
在以后的章节中,作者始终以“启发编程思想,培养编程感觉”为指导,以剖析典型实例、分析源码结构含义、解析常见问题等方式,从高屋建瓴的角度,用通俗易懂的文字,讲解了多线程、常用Java类、Java中的I/O(输入...