java:IO-java文件内容读写

1 、按字节读取文件内容
2 、按字符读取文件内容
3 、按行读取文件内容
4 、随机读取文件内容

按字节读写

  1. 按字节读取文件
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();
 }
  1. 按字节写入文件
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();
 }

按字符读写

  1. 按字符读取文件
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();
 }
  1. 按字符写入文件
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();
 }

随机读写

  1. 随机读
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();
    }
  1. 随机写
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);
}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值