写在前面:本文章基本覆盖了java IO的全部内容,java新IO没有涉及,因为我想和这个分开,以突出那个的重要性,新IO哪一篇文章还没有开始写,估计很快就能和大家见面。照旧,文章依旧以例子为主,因为讲解内容的java书很多了,我觉的学以致用才是真。代码是写出来的,不是看出来的。
最后欢迎大家提出意见和建议。
【案例1】创建一个新文件
1
2
3
4
5
6
7
8
9
10
11
|
import java.io.*;
class hello{
public static void main(String[] args) {
File f= new File( "D:\\hello.txt" );
try {
f.createNewFile();
} catch (Exception e) {
e.printStackTrace();
}
}
} |
【运行结果】:
程序运行之后,在d盘下会有一个名字为hello.txt的文件。
【案例2】File类的两个常量
1
2
3
4
5
6
7
|
import java.io.*;
class hello{
public static void main(String[] args) {
System.out.println(File.separator);
System.out.println(File.pathSeparator);
}
} |
【运行结果】:
\
;
此处多说几句:有些同学可能认为,我直接在windows下使用\进行分割不行吗?当然是可以的。但是在linux下就不是\了。所以,要想使得我们的代码跨平台,更加健壮,所以,大家都采用这两个常量吧,其实也多写不了几行。呵呵、
现在我们使用File类中的常量改写上面的代码:
1
2
3
4
5
6
7
8
9
10
11
12
|
import java.io.*;
class hello{
public static void main(String[] args) {
String fileName= "D:" +File.separator+ "hello.txt" ;
File f= new File(fileName);
try {
f.createNewFile();
} catch (Exception e) {
e.printStackTrace();
}
}
} |
你看,没有多写多少吧,呵呵。所以建议使用File类中的常量。
删除一个文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
/** * 删除一个文件
* */
import java.io.*;
class hello{
public static void main(String[] args) {
String fileName= "D:" +File.separator+ "hello.txt" ;
File f= new File(fileName);
if (f.exists()){
f.delete();
} else {
System.out.println( "文件不存在" );
}
}
} |
创建一个文件夹
1
2
3
4
5
6
7
8
9
10
11
|
/** * 创建一个文件夹
* */
import java.io.*;
class hello{
public static void main(String[] args) {
String fileName= "D:" +File.separator+ "hello" ;
File f= new File(fileName);
f.mkdir();
}
} |
【运行结果】:
D盘下多了一个hello文件夹
列出指定目录的全部文件(包括隐藏文件):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
/** * 使用list列出指定目录的全部文件
* */
import java.io.*;
class hello{
public static void main(String[] args) {
String fileName= "D:" +File.separator;
File f= new File(fileName);
String[] str=f.list();
for ( int i = 0 ; i < str.length; i++) {
System.out.println(str[i]);
}
}
} |
【运行结果】:
$RECYCLE.BIN
360
360Downloads
360Rec
360SoftMove
Config.Msi
da
Downloads
DriversBackup
eclipse
java web整合开发和项目实战
Lenovo
MSOCache
Program
Program Files
python
RECYGLER.{8F92DA15-A229-A4D5-B5CE-5280C8B89C19}
System Volume Information
Tomcat6
var
vod_cache_data
新建文件夹
(你的运行结果应该和这个不一样的,呵呵)
但是使用list返回的是String数组,。而且列出的不是完整路径,如果想列出完整路径的话,需要使用listFiles.他返回的是File的数组
列出指定目录的全部文件(包括隐藏文件):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
/** * 使用listFiles列出指定目录的全部文件
* listFiles输出的是完整路径
* */
import java.io.*;
class hello{
public static void main(String[] args) {
String fileName= "D:" +File.separator;
File f= new File(fileName);
File[] str=f.listFiles();
for ( int i = 0 ; i < str.length; i++) {
System.out.println(str[i]);
}
}
} |
【运行结果】:
D:\$RECYCLE.BIN
D:\360
D:\360Downloads
D:\360Rec
D:\360SoftMove
D:\Config.Msi
D:\da
D:\Downloads
D:\DriversBackup
D:\eclipse
D:\java web整合开发和项目实战
D:\Lenovo
D:\MSOCache
D:\Program
D:\Program Files
D:\python
D:\RECYGLER.{8F92DA15-A229-A4D5-B5CE-5280C8B89C19}
D:\System Volume Information
D:\Tomcat6
D:\var
D:\vod_cache_data
D:\新建文件夹
通过比较可以指定,使用listFiles更加方便、
判断一个指定的路径是否为目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
/** * 使用isDirectory判断一个指定的路径是否为目录
* */
import java.io.*;
class hello{
public static void main(String[] args) {
String fileName= "D:" +File.separator;
File f= new File(fileName);
if (f.isDirectory()){
System.out.println( "YES" );
} else {
System.out.println( "NO" );
}
}
} |
【运行结果】:YES
搜索指定目录的全部内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
/** * 列出指定目录的全部内容
* */
import java.io.*;
class hello{
public static void main(String[] args) {
String fileName= "D:" +File.separator;
File f= new File(fileName);
print(f);
}
public static void print(File f){
if (f!= null ){
if (f.isDirectory()){
File[] fileArray=f.listFiles();
if (fileArray!= null ){
for ( int i = 0 ; i < fileArray.length; i++) {
//递归调用
print(fileArray[i]);
}
}
}
else {
System.out.println(f);
}
}
}
} |
【运行结果】:
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\framepages\web4welcome_jsp.java
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\help_005fhome_jsp.class
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\help_005fhome_jsp.java
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\home_jsp.class
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\home_jsp.java
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\index_jsp.class
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\index_jsp.java
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\login_jsp.class
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\login_jsp.java
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\modify_005fuser_005finfo_jsp.class
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\modify_005fuser_005finfo_jsp.java
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\register_005fnotify_jsp.class
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\register_005fnotify_jsp.java
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\sign_005fup_jsp.class
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\sign_005fup_jsp.java
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\transit_jsp.class
……
【使用RandomAccessFile写入文件】
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
/** * 使用RandomAccessFile写入文件
* */
import java.io.*;
class hello{
public static void main(String[] args) throws IOException {
String fileName= "D:" +File.separator+ "hello.txt" ;
File f= new File(fileName);
RandomAccessFile demo= new RandomAccessFile(f, "rw" );
demo.writeBytes( "asdsad" );
demo.writeInt( 12 );
demo.writeBoolean( true );
demo.writeChar( 'A' );
demo.writeFloat( 1 .21f);
demo.writeDouble( 12.123 );
demo.close();
}
} |
如果你此时打开hello。txt查看的话,会发现那是乱码。
转自:http://www.cnblogs.com/rollenholt/archive/2011/09/11/2173787.html
相关推荐
在案例1中,通过`new File("D:\\hello.txt")`创建了一个`File`对象,然后调用`createNewFile()`方法创建了一个名为`hello.txt`的文件。如果文件已存在或创建失败,此方法将抛出异常。 案例2展示了`File`类的两个...
Java中IO系统总结[整理].pdf
Java中的IO流是Java平台核心特性之一,它用于在各种数据源之间传输数据,包括文件、设备、网络连接等。IO流分为输入流(Input Stream)和输出流(Output Stream),按照处理的数据类型又可以分为字节流和字符流。本...
JAVA_IO流整理思维导图.
在这个完整的Java IO整理版中,我们将深入探讨一些基本的IO概念和用法,主要包括文件操作、路径分隔符、文件删除、文件夹创建以及列出目录下的所有文件。 首先,创建新文件是Java IO中最基础的操作之一。在案例1中...
在Java中,IO复用允许一个线程同时处理多个连接的读写事件,从而避免了线程频繁地在睡眠和唤醒状态之间切换,提高了系统性能。 传统的并发编程模型通常与线程绑定,每个连接由一个独立的线程处理。虽然这种方法简单...
javaIO流整理.txt
### Java IO流分析、IO整理与IO优化 #### 一、IO流概念解析 Java中的文件操作主要通过**流**的方式进行。所谓流,是指在Java内存中的一组有序数据序列,它允许开发者以一种线性的方式处理数据,无论是从源(如文件...
Java io系统的设计初衷,就是为了实现“文件、控制台、网络设备”这些io设置的通信。例如,对于一个文件,我们...而到了java 1.1,为了与国际化进行接轨,在java io中添加了许多以字符(Unicode)为单位进行操作的类。
1. **流(Stream)**:Java IO中的核心概念,流是数据的序列,可以是字节流或字符流。字节流处理单个字节,字符流处理Unicode字符。流有输入流和输出流之分,分别用于数据的读取和写入。 2. **File类**:File类用于...
自己整理了一下javaIO流的相关知识点 用xmind软件做了一下
Java IO流思维导图,主要摘录整理的是java.io.*包下的所有IO对象,其中对应备注里包含各个IO对象的构造方法
Java多线程.drawio
在"Java常用代码整理"这个主题中,我们可以探讨多个Java编程中的关键知识点,包括基础语法、面向对象特性、异常处理、集合框架、IO流、多线程、网络编程以及实用工具类等。 1. **基础语法**:Java的基础语法包括...
Java NIO是Java语言中用于高性能I/O操作的API,理解IO模型是学习Java NIO的基础。本文将从同步和异步的概念开始,然后介绍阻塞和非阻塞的区别,接着介绍阻塞IO和非阻塞IO的区别,最后介绍五种IO模型和两种高性能IO...
Java的IO流体系是Java平台的核心特性之一,用于处理数据的输入和输出。这个体系结构设计得相当丰富和灵活,可以适应多种不同的场景。我们主要从两个方面来理解这个体系:对称性质和处理器模式。 首先,IO流的对称...
Java核心面试知识整理包括了对JVM内存区域、垃圾回收机制、GC算法、JVM类加载机制、Java集合框架以及Java IO/NIO等多个方面的深入讲解。以下是对这些知识点的详细介绍: JVM内存区域:JVM内存区域包括了程序计数器...
下面我们将详细探讨Java中28个常用的工具类,主要涉及`IO`相关的开发工具。 1. **java.lang.Math**:这个类提供了许多基础数学函数,如求平方根、最大值、最小值、随机数生成等。 2. **java.util.Arrays**:用于...
Java IO流是Java编程语言中一个非常重要的概念,它提供了数据传输的能力,使得程序能够读取和写入数据到各种输入/输出设备,如硬盘、内存、网络等。本资源包含的是Java-IO流的基础例题、源码及PPT教学文档,适合初学...