3.7.3 文件输入与输出
- 示例1:读取自己电脑桌面上"test.txt"文件中的内容进行打印输出。
public class ReadFileSample
{
public static void main(String[] args){
/* > todo 启动路径因为编译方式不同而有所差异,
如果是命令行方式则启动路径就是命令解释器的当前路径
如果是使用集成开发环境,则启动路径由IDE控制
*/
String dir = System.getProperty("user.dir"); // 找到启动路径的位置
// 找到桌面上"test.txt"文件所在的位置
System.out.println("user dir:" + dir);
System.out.println("Paths.get("..\\..\\..\\Desktop\\test.txt"): " + Paths.get("..\..\..\Desktop\test.txt"));
// 读取"test.txt"文件中的内容,写入字符串str中
Scanner scan = null;
try {
scan = new Scanner(Paths.get("..\..\..\Desktop\test.txt"), "UTF-8"); // 可能会抛异常
} catch (IOException e) {
e.printStackTrace();
}
StringBuffer str = new StringBuffer();
while (scan.hasNext()) {
str.append(scan.nextLine()).append('
');
}
System.out.println("文件内容为:" + str.toString()); // 输出
}
}
- 程序示例1运行结果:
- 示例2:读取自己电脑桌面上"test.txt"文件中的内容并写入到桌面上的"myfile.txt"文件中。
public class ReadFileSample
{
public static void main(String[] args){
/* > todo 启动路径因为编译方式不同而有所差异,
如果是命令行方式则启动路径就是命令解释器的当前路径
如果是使用集成开发环境,则启动路径由IDE控制
*/
String dir = System.getProperty("user.dir"); // 找到启动路径的位置
// 找到桌面上"test.txt"文件所在的位置
System.out.println("user dir:" + dir);
System.out.println("Paths.get("..\\..\\..\\Desktop\\test.txt"): " + Paths.get("..\..\..\Desktop\test.txt"));
// 读取"test.txt"文件中的内容,写入字符串str中
Scanner scan = null;
try {
scan = new Scanner(Paths.get("..\..\..\Desktop\test.txt"), "UTF-8"); // 可能会抛异常
} catch (IOException e) {
e.printStackTrace();
}
StringBuffer str = new StringBuffer();
while (scan.hasNext()) {
str.append(scan.nextLine()).append('
');
}
System.out.println("文件内容为:" + str.toString()); // 输出
PrintWriter out = null;
try {
// 桌面上如果"myfile.txt"文件不存在则创建新文件
out = new PrintWriter(String.valueOf(Paths.get("..\..\..\Desktop\myfile.txt")), "UTF-8"); // 可能会抛异常
} catch (FileNotFoundException | UnsupportedEncodingException e) {
e.printStackTrace();
}
assert out != null; // 为了避免print方法调用空指针异常,此处加个断言
out.print(str.toString()); // 向myfile.txt文件中写入
out.close(); // 关闭流并释放相关系统资源
}
}
- 程序示例2运行结果: