csjiabin's blog csjiabin's blog
首页
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
  • 学习笔记

    • 《面向Node.js开发者的Go》
更多
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

csjiabin

前端界的小菜鸟
首页
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
  • 学习笔记

    • 《面向Node.js开发者的Go》
更多
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • comments
  • printing
  • logging
  • variables
  • interpolation
  • types
  • type check
  • if/else
  • for
  • while
  • switch
  • arrays
  • uint8 arrays
  • array iteration
  • array sorting
  • buffers
  • maps
  • objects
  • functions
  • default values
  • destructuring
  • spread operator
  • rest operator
  • swapping
  • classes
  • generators
  • datetime
  • timeout
  • interval
  • IIFE
  • files
    • json
    • big numbers
    • promises
    • async await
    • streams
    • event emitter
    • errors
    • try/catch
    • exceptions
    • regex
    • exec
    • tcp server
    • udp server
    • http server
    • url parse
    • gzip
    • dns
    • crypto
    • env vars
    • cli args
    • cli flags
    • stdout
    • stderr
    • stdin
    • modules
    • stack trace
    • databases
    • testing
    • benchmarking
    • documentation
    • 《面向Nodejs开发者的Go》
    miguelmota
    2022-09-29
    目录

    files

    Examples of creating, opening, writing, reading, closing, and deleting files.

    # Node.js

    const fs = require("fs");
    
    // create file
    fs.closeSync(fs.openSync("test.txt", "w"));
    
    // open file (returns file descriptor)
    const fd = fs.openSync("test.txt", "r+");
    
    let wbuf = Buffer.from("hello world.");
    let rbuf = Buffer.alloc(12);
    let off = 0;
    let len = 12;
    let pos = 0;
    
    // write file
    fs.writeSync(fd, wbuf, pos);
    
    // read file
    fs.readSync(fd, rbuf, off, len, pos);
    
    console.log(rbuf.toString());
    
    // close file
    fs.closeSync(fd);
    
    // delete file
    fs.unlinkSync("test.txt");
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27

    Output

    hello world.
    
    1

    # Go

    package main
    
    import (
    	"fmt"
    	"os"
    	"syscall"
    )
    
    func main() {
    	// create file
    	file, err := os.Create("test.txt")
    	if err != nil {
    		panic(err)
    	}
    
    	// close file
    	file.Close()
    
    	// open file
    	file, err = os.OpenFile("test.txt", os.O_RDWR, 0755)
    	if err != nil {
    		panic(err)
    	}
    
    	// file descriptor
    	fd := file.Fd()
    
    	// open file (using file descriptor)
    	file = os.NewFile(fd, "test file")
    
    	wbuf := []byte("hello world.")
    	rbuf := make([]byte, 12)
    	var off int64
    
    	// write file
    	if _, err := file.WriteAt(wbuf, off); err != nil {
    		panic(err)
    	}
    
    	// read file
    	if _, err := file.ReadAt(rbuf, off); err != nil {
    		panic(err)
    	}
    
    	fmt.Println(string(rbuf))
    
    	// close file (using file descriptor)
    	if err := syscall.Close(int(fd)); err != nil {
    		panic(err)
    	}
    
    	// delete file
    	if err := os.Remove("test.txt"); err != nil {
    		panic(err)
    	}
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56

    Output

    hello world.
    
    1

    ⬆ back to top

    编辑 (opens new window)
    #Go#Node.js
    上次更新: 2022/09/30, 11:34:22
    IIFE
    json

    ← IIFE json→

    最近更新
    01
    咖啡知识
    10-13
    02
    documentation
    09-29
    03
    benchmarking
    09-29
    更多文章>
    Theme by Vdoing | Copyright © 2018-2022 csjiabin | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式