1
、按字节读取文件内容
2
、按字符读取文件内容
3
、按行读取文件内容
4
、随机读取文件内容
按字节读写
- 按字节读取文件
public
static
void
main(String[] args)
throws
Exception {
File file =
new
File(
"d:"
+ File.
separator
+
"demo.txt"
);
InputStream in =
new
FileInputStream(file);
byte
[] b =
new
byte
[(
int
)file.length()];
in.read(b);
System.
out
.print(
new
String(b));
in.close();
}
public
static
void
main(String[] args)
throws
Exception{
File file =
new
File(
"d:"
+ File.
separator
+
"demo.txt"
);
InputStream in =
new
FileInputStream(file);
byte
[] b =
new
byte
[(
int
)file.length()];
for
(
int
i=0; i<b.
length
; i++) {
b[i] = (
byte
)in.read();
}
System.
out
.print(
new
String(b));
in.close();
}
- 按字节写入文件
public
static
void
main(String[] args)
throws
Exception {
File file =
new
File(
"d:"
+ File.
separator
+
"demo.txt"
);
//
下面的参数true表示可以在当前文本后追加,不写true的话,则更替当前文本
OutputStream out =
new
FileOutputStream(file,
true
);
String str =
"Hello Word\r\nhhhhh"
;
byte
[] b = str.getBytes();
out.write(b);
out.close();
}
public
static
void
main(String[] args)
throws
Exception {
File file =
new
File(
"d:"
+ File.
separator
+
"demo.txt"
);
OutputStream out =
new
FileOutputStream(file,
true
);
String str =
" OutpitStream02"
;
byte
[] b = str.getBytes();
for
(
int
i=0; i<b.
length
; i++) {
out.write(b[i]);
}
out.close();
}
按字符读写
- 按字符读取文件
public
static
void
main(String[] args)
throws
IOException{
File file =
new
File(
"d:"
+ File.
separator
+
"demo.txt"
);
BufferedReader in =
new
BufferedReader(
new
FileReader(file));
char
[] c =
new
char
[(
int
)file.length()];
in.read(c);
System.
out
.println(
new
String(c));
in.close();
}
- 按字符写入文件
public
static
void
main(String[] args)
throws
IOException {
File file =
new
File(
"d:"
+ File.
separator
+
"demo.txt"
);
//
下面的参数true表示可以在当前文本后追加,不写true的话,则更替当前文本
BufferedWriter out =
new
BufferedWriter(
new
FileWriter(file,
true
));
out.write(
"WriterDemo"
);
out.close();
}
随机读写
- 随机读
public
static
void
main(String[] args)
throws
Exception {
File file =
new
File(
"d:"
+ File.
separator
+
"demo.txt"
);
RandomAccessFile raf =
new
RandomAccessFile(file,
"r"
);
byte
[] b =
new
byte
[8];
String
name
=
null
;
int
age = 0;
raf.skipBytes(12);
System.
out
.println(
"
第二个人的信息:"
);
for
(
int
i=0; i<8; i++) {
b[i] = raf.readByte();
}
age = raf.readInt();
System.
out
.println(
"
姓名:"
+
new
String(b));
System.
out
.println(
"
年龄:"
+age);
raf.seek(0);
System.
out
.println(
"
第一个人的信息:"
);
for
(
int
i=0; i<8; i++) {
b[i] = raf.readByte();
}
age = raf.readInt();
System.
out
.println(
"
姓名:"
+
new
String(b));
System.
out
.println(
"
年龄:"
+age);
raf.close();
}
- 随机写
public
static
void
main(String[] args)
throws
Exception {
//
TODO
Auto-generated method stub
File file =
new
File(
"d:"
+ File.
separator
+
"demo.txt"
);
RandomAccessFile raf =
new
RandomAccessFile(file,
"rw"
);
//
读写模式下,要是文件不存在会自动创建
String name =
"ZhangSan"
;
int
age = 30;
raf.writeBytes(name);
//
按字节序列将该字符串写入该文件,8个字节
raf.writeInt(age);
//
按四个字节将
int
写入文件
name =
"LiSi "
;
age = 40;
raf.writeBytes(name);
raf.writeInt(age);
raf.close();
}
将内容追加到文件尾部
public class AppendToFile {
public static void appendMethodA(String fileName, String content) {
try {
//
打开一个随机访问文件流,按读写方式
RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");
//
文件长度,字节数
long fileLength = randomFile.length();
//
将写文件指针移到文件尾。
randomFile.seek(fileLength);
randomFile.writeBytes(content);
randomFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void appendMethodB(String fileName, String content) {
try {
//
打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
FileWriter writer = new FileWriter(fileName, true);
writer.write(content);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
String fileName = "C:/temp/newTemp.txt";
String content = "new append!";
//
按方法A追加文件
AppendToFile.appendMethodA(fileName, content);
AppendToFile.appendMethodA(fileName, "append end. /n");
//
显示文件内容
ReadFromFile.readFileByLines(fileName);
//
按方法B追加文件
AppendToFile.appendMethodB(fileName, content);
AppendToFile.appendMethodB(fileName, "append end. /n");
//
显示文件内容
ReadFromFile.readFileByLines(fileName);
}
}