一:简单读取
try(var reader = new FileReader("user.txt")){
while(reader.ready()) {
System.out.print((char)reader.read());
}
} catch (IOException e) {
throw new RuntimeException(e);
}
二:读取一个具体Java文件的代码和行数
字节流读取
1.声明文件地址:
String f="文件地址名";
2.采用读取字节流FileInputStream
var is = new FileInputStream(f)
try(var is = new FileInputStream(f)){
}catch(Exception e){
e.printStackTrace();
}
3.在try下面输出文本代码和行数
System.out.println(txt);//输出文本代码
System.out.println(txt.lines().count());//行数
4.完整代码:
/*
* Copyright (c) 2020, 2023.
*
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
/**
* <p>Project: File - F3</p>
* <p>Powered by Cyy On 2023-07-20 16:48:20</p>
* <p>描述:<p>
*
* @author Cyy [210585265@qq.com]
* @version 1.0
* @since 17
*/
public class F4 {
public static void main(String[] args) {
String f="";
//字节流
try(var is = new FileInputStream(f)){
System.out.println(txt);//输出代码
System.out.println(txt.lines().count());//行数
}catch(Exception e){
e.printStackTrace();
}
}
}
字符流读取
1..采用读取字符流FileReader
FileReader reader = new FileReader(f)
2.实例化StringBuffer对象
StringBuilder对象代表一个字符序列可变的字符串,当一个StringBuffer被创建以后,通过append()方法改变这个字符串对象的字符序列,最后通过调用它的toString()方法将其转换为一个String对象。
StringBuilder sbu = new StringBuilder();
3. 当在读取的时候进行追加,将指定的字符串追加到此字符序列
sbu.append();追加
String .format();改变格式
while(reader.ready()){
//将用字符流读取的内容转为字符串
sbu.append(String.format("%c",reader.read()));
}
4.输出
直接输出sbu获取内容
输出获取行数
System.out.println(sbu);
System.out.println(sbu.toString().lines().count());//行数
5.完整代码
/*
* Copyright (c) 2020, 2023.
*
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
/**
* <p>Project: File - F3</p>
* <p>Powered by Cyy On 2023-07-20 16:48:20</p>
* <p>描述:<p>
*
* @author Cyy [210585265@qq.com]
* @version 1.0
* @since 17
*/
public class F4 {
public static void main(String[] args){
//字符流
try(FileReader reader = new FileReader(f)){
StringBuilder sbu = new StringBuilder();
while(reader.ready()){
sbu.append(String.format("%c",reader.read()));
}
System.out.println(sbu);
System.out.println(sbu.toString().lines().count());//行数
}catch(Exception e){
e.printStackTrace();
}
}
}