Skip to content

Commit 0d6b30e

Browse files
committed
代码提交
1 parent 50ebcaa commit 0d6b30e

5 files changed

Lines changed: 80 additions & 10 deletions

File tree

io-study-demo/src/main/java/com/jay/BufferInputStreamTest.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import java.io.BufferedInputStream;
44
import java.io.IOException;
5-
import java.io.InputStream;
65

76
/**
87
* Created by xiang.wei on 2019/6/8
@@ -11,12 +10,12 @@
1110
*/
1211
public class BufferInputStreamTest {
1312
public static void main(String[] args) throws IOException {
14-
InputStream inputStream = new BufferedInputStream(InputStreamTest.class.getResourceAsStream("/inputTest.txt"));
13+
BufferedInputStream inputStream = new BufferedInputStream(InputStreamTest.class.getResourceAsStream("/inputTest.txt"));
1514
try {
16-
int data;
17-
while ((data=inputStream.read()) != -1) {
18-
System.out.println(data);
19-
}
15+
// size 为字串的长度 ,这里一次性读完
16+
byte[] bytes = new byte[inputStream.available()];
17+
inputStream.read(bytes);
18+
System.out.println("读取到的结果是:"+new String(bytes,"UTF-8"));
2019
} finally {
2120
if (inputStream != null) {
2221
inputStream.close();
Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.jay;
22

3+
import java.io.FileInputStream;
34
import java.io.IOException;
45
import java.io.InputStream;
56

@@ -11,16 +12,52 @@
1112
*/
1213
public class InputStreamTest {
1314
public static void main(String[] args) throws IOException {
14-
InputStream inputStream = InputStreamTest.class.getResourceAsStream("/inputTest.txt");
15+
String fileName = InputStreamTest.class.getResource("/inputTest.txt").getFile();
16+
// readString1(fileName);
17+
readString2(fileName);
18+
}
19+
20+
/**
21+
* 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。
22+
* 当然也是可以读字符串的。
23+
*
24+
* @param fileName
25+
*/
26+
public static void readString1(String fileName) throws IOException {
27+
// FileInputStream 用于读取诸如图像数据之类的原始字节流,读取字符流,请使用FileReader
28+
InputStream is = new FileInputStream(fileName);
29+
StringBuilder stringBuilder;
1530
try {
16-
int data;
17-
while ((data=inputStream.read()) != -1) {
18-
System.out.println(data);
31+
stringBuilder = new StringBuilder();
32+
byte[] bytes = new byte[1024];
33+
while (is.read(bytes) != -1) {
34+
stringBuilder.append(bytes);
1935
}
36+
} finally {
37+
if (is != null) {
38+
is.close();
39+
}
40+
}
41+
System.out.println("读取到的结果:" + stringBuilder.toString());
42+
}
43+
44+
/**
45+
* 按字节读取字符串,一次性读取完
46+
* @param fileName
47+
* @throws IOException
48+
*/
49+
public static void readString2(String fileName) throws IOException {
50+
InputStream inputStream = new FileInputStream(fileName);
51+
try {
52+
// size 为字串的长度 ,这里一次性读完
53+
byte[] bytes = new byte[inputStream.available()];
54+
inputStream.read(bytes);
55+
System.out.println("读取到的结果是:"+new String(bytes,"UTF-8"));
2056
} finally {
2157
if (inputStream != null) {
2258
inputStream.close();
2359
}
2460
}
61+
2562
}
2663
}

io-study-demo/src/main/java/com/jay/ReaderTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public static void main(String[] args) throws IOException {
1919
}
2020

2121
/**
22+
*
2223
* @param fileName
2324
* @throws IOException
2425
*/
@@ -42,6 +43,12 @@ public static void readFileToString1(String fileName ) throws IOException {
4243
}
4344
}
4445

46+
/**
47+
* InputStreamReader+BufferedReader读取字符串 ,
48+
* InputStreamReader类是从字节流到字符流的桥梁,按行读对于要处理的格式化数据是一种读取的好方式
49+
* @param fileName
50+
* @throws IOException
51+
*/
4552
public static void readFileToString2(String fileName) throws IOException {
4653
BufferedReader bufferedReader = new BufferedReader(new FileReader(fileName));
4754
try {
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.jay;
2+
3+
/**
4+
* Created by xiang.wei on 2019/6/8
5+
*
6+
* @author xiang.wei
7+
*/
8+
public class RelativePath {
9+
public static void main(String[] args) {
10+
// 方法一
11+
String fileName = ReaderTest.class.getResource("/inputTest.txt").getFile();
12+
System.out.println("*****方法一相对路径读取到的文件地址:"+fileName);
13+
// 方法二
14+
String fileName1 = Thread.currentThread().getContextClassLoader().getResource("inputTest.txt").getFile();
15+
System.out.println("*****方法二相对路径读取到的文件地址:"+fileName1);
16+
}
17+
}

io-study-demo/src/main/java/com/jay/WriterTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,23 @@ public static void main(String[] args) throws IOException {
2626

2727
}
2828

29+
/**
30+
* 使用BufferedWriter写入
31+
* @param file
32+
* @throws IOException
33+
*/
2934
public static void writeStringToFile1(FileWriter file) throws IOException {
3035
BufferedWriter bufferedWriter = new BufferedWriter(file);
3136
bufferedWriter.append("bufferedWriter");
3237
bufferedWriter.append("测试2111");
3338
bufferedWriter.close();
3439
}
3540

41+
/**
42+
* 使用PrintWriter写入
43+
* @param fileWriter
44+
* @throws IOException
45+
*/
3646
public static void writeStringToFile2(FileWriter fileWriter) throws IOException {
3747
PrintWriter printWriter = new PrintWriter(fileWriter);
3848
printWriter.append("printWriter");

0 commit comments

Comments
 (0)