这是文件读取吧,哪里有输入的, 你文件路径对不对, 在catch里面 输出一下异常信息看看
e.printStackTrace();
检查文件后缀是不是隐藏了,实际名称 是 english.txt.txt
在GBK字符编码集中,汉字是由2个字节组成,因为GBK兼容ISO-8859-1,正数的单字节已被占用
所以汉字的第一个字节必须为负数第二个字节大多也为负数。如:
public class StringDemo {
public static void main(String[] args) throws UnsupportedEncodingException {
String s1 = "Xyz123";
String s2 = "手可摘星辰";
byte[] bys1 = s1.getBytes();
byte[] bys2 = s2.getBytes();
System.out.println(Arrays.toString(bys1));
System.out.println(Arrays.toString(bys2));
}
}
/* GBK编码字符集下:
[88, 121, 122, 49, 50, 51]
[-54, -42, -65, -55, -43, -86, -48, -57, -77, -67]
* */
针对输入输出流无法工作的问题,可以先检查代码中是否有如下问题:
针对如何改进代码以正确输出数据并运行输入输出流,可以进行如下操作:
下面是一个使用Java输入输出流的示例代码,通过分步解释的方式,帮助您更好地理解如何使用输入输出流:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class IOstream {
// 定义静态常量
public static final String FILEPATH = "D:/test.txt";
public static final String OUTPUT = "D:/test_out.txt";
public static void main(String[] args) throws IOException {
IOstream tester = new IOstream();
String text = "test";
// 写入文件
tester.writeFile(FILEPATH, text);
// 读取文件
String content = tester.readFile(FILEPATH);
System.out.println(content);
// 复制文件
tester.copyFile(FILEPATH, OUTPUT);
// 读取复制后的文件
content = tester.readFile(OUTPUT);
System.out.println(content);
}
/**
* 写入文件
*
* @param filePath
* 文件路径
* @param text
* 待写入的文本
*/
public void writeFile(String filePath, String text) {
FileWriter writer = null;
try {
// 创建一个FileWriter对象
writer = new FileWriter(filePath);
// 写入文本
writer.write(text);
} catch (IOException ex) {
ex.printStackTrace();
} finally {
try {
// 关闭写入流
writer.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
/**
* 读取文件
*
* @param filePath
* 文件路径
* @return 返回文件内容
*/
public String readFile(String filePath) {
String content = "";
File file = new File(filePath);
try {
// 读取文件内容
FileReader reader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(reader);
String line;
while ((line = bufferedReader.readLine()) != null) {
content += line;
}
bufferedReader.close();
} catch (IOException ex) {
ex.printStackTrace();
}
return content;
}
/**
* 复制文件
*
* @param srcPath
* 源文件路径
* @param targetPath
* 目标文件路径
*/
public void copyFile(String srcPath, String targetPath) {
File srcFile = new File(srcPath);
File targetFile = new File(targetPath);
FileReader reader = null;
FileWriter writer = null;
try {
// 读取源文件
reader = new FileReader(srcFile);
BufferedReader bufferedReader = new BufferedReader(reader);
String line;
String text = "";
while ((line = bufferedReader.readLine()) != null) {
text += line;
}
bufferedReader.close();
// 写入目标文件
writer = new FileWriter(targetFile);
BufferedWriter bufferedWriter = new BufferedWriter(writer);
bufferedWriter.write(text);
bufferedWriter.flush();
bufferedWriter.close();
} catch (IOException ex) {
ex.printStackTrace();
} finally {
try {
// 关闭流
reader.close();
writer.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}