Back to 课程

Computer-science_A-level_Cie

0% Complete
0/0 Steps
  1. computers-and-components
    6 主题
  2. logic-gates-and-logic-circuits
    2 主题
  3. central-processing-unit-cpu-architecture
    6 主题
  4. assembly-language-
    4 主题
  5. bit-manipulation
    1 主题
  6. operating-systems
    3 主题
  7. language-translators
    2 主题
  8. data-security
    3 主题
  9. data-integrity
    1 主题
  10. ethics-and-ownership
    3 主题
  11. database-concepts
    3 主题
  12. database-management-systems-dbms-
    1 主题
  13. data-definition-language-ddl-and-data-manipulation-language-dml
    1 主题
  14. computational-thinking-skills
    1 主题
  15. algorithms
    14 主题
  16. data-types-and-records
    2 主题
  17. arrays
    2 主题
  18. files
    1 主题
  19. introduction-to-abstract-data-types-adt
    1 主题
  20. programming-basics
    1 主题
  21. constructs
    2 主题
  22. structured-programming
    1 主题
  23. program-development-life-cycle
    2 主题
  24. program-design-
    2 主题
  25. program-testing-and-maintenance
    3 主题
  26. user-defined-data-types
    1 主题
  27. file-organisation-and-access-
    3 主题
  28. floating-point-numbers-representation-and-manipulation
    3 主题
  29. protocols
    2 主题
  30. circuit-switching-packet-switching
    1 主题
  31. processors-parallel-processing-and-virtual-machines
    5 主题
  32. boolean-algebra-and-logic-circuits
    4 主题
  33. purposes-of-an-operating-system-os
    3 主题
  34. translation-software
    3 主题
  35. encryption-encryption-protocols-and-digital-certificates
    3 主题
  36. artificial-intelligence-ai
    4 主题
  37. recursion
    1 主题
  38. programming-paradigms
    4 主题
  39. object-oriented-programming
    7 主题
  40. file-processing-and-exception-handling
    2 主题
  41. data-representation
    5 主题
  42. multimedia
    3 主题
  43. compression
    2 主题
  44. networks-and-the-internet
    11 主题
课 Progress
0% Complete

File operations

What are file-processing operations?

  • File-processing involves interacting with external files stored on secondary storage (e.g. hard drives, SSDs)

  • In programming, files must be properly opened, read/written, and closed to ensure data is handled correctly

  • Different types of file access are also used

Common file operations

Operation

Description

Open

The file is opened in a specific mode:
read – to read data
write – to overwrite data
append – to add new data to the end

Read

Data (e.g. lines or records) is read from the file into memory

Write

Data is written to the file (overwriting or appending depending on mode)

Close

Ends access to the file and ensures all data is saved properly

Types of file access

Access type

Description

Serial access

Records are stored one after another, and accessed in the order they were added. Often used for logging

Sequential access

Records are read from the beginning to the end, in order. Common for batch processing and text files

Random access

Records can be accessed directly using a key or file position. Common in databases or indexed files

Programming file-operations

Pseudocode

Basic file operations

OPEN filename FOR mode // mode: READ, WRITE, APPEND
READ record FROM filename // Read one record
WRITE record TO filename // Write one record
CLOSE filename // Always close the file

Serial access (e.g. logging events)

  • Data is written one after another (no specific order)

  • Often used with APPEND mode

Example: Writing logs serially

TYPE LogRecord DECLARE message : STRING DECLARE timestamp : STRING
ENDTYPE DECLARE log : LogRecord SET log.message = "System started"
SET log.timestamp = "12:00" OPEN "logfile.txt" FOR APPEND
WRITE log TO "logfile.txt"
CLOSE "logfile.txt"

Sequential access (e.g. reading through all records)

  • Records are read in order from start to end

  • Common for reports or summaries

Example: Reading student grades sequentially

TYPE Student DECLARE name : STRING DECLARE grade : INTEGER
ENDTYPE DECLARE student : Student OPEN "students.txt" FOR READ WHILE NOT EOF("students.txt") READ student FROM "students.txt" OUTPUT student.name, student.grade
ENDWHILE CLOSE "students.txt"

Random access (e.g. accessing specific records by key)

  • Accesses records directly using a key (e.g. record number or unique ID)

  • Requires indexed files or fixed-length records

Example: Update a student’s grade by record position

TYPE Student DECLARE name : STRING DECLARE grade : INTEGER
ENDTYPE DECLARE student : Student
DECLARE recordNumber : INTEGER SET recordNumber = 5 // go directly to the 5th record OPEN "students.txt" FOR RANDOM
SEEK "students.txt", recordNumber
READ student FROM "students.txt" SET student.grade = 90 // update grade SEEK "students.txt", recordNumber
WRITE student TO "students.txt"
CLOSE "students.txt"

Summary

Operation

Purpose

Example

OPEN

Opens a file in a specified mode

OPEN "file.txt" FOR READ

READ

Reads one record

READ student FROM "file.txt"

WRITE

Writes one record

WRITE student TO "file.txt"

CLOSE

Closes the file

CLOSE "file.txt"

SEEK

Moves to a specific record (random access)

SEEK "file.txt", 5

Python

Basic file operations

file = open("filename.txt", "r" or "w" or "a") # Open for read, write, or append
line = file.readline() # Read one line
file.write(data) # Write one line
file.close() # Close the file

Serial access (e.g. logging events)

Example: Appending log entries to a file (serial write)

from datetime import datetime message = "System started"
timestamp = datetime.now().strftime("%H:%M") log = f"{timestamp} - {message}n" with open("logfile.txt", "a") as file: file.write(log)

Sequential access (e.g. reading through all records)

Example: Reading through each student line by line

with open("students.txt", "r") as file: for line in file: name, grade = line.strip().split(",") print(f"Name: {name}, Grade: {grade}")

Random access (e.g. accessing specific records by key)

Example: Update a student’s grade by index (record number)

record_number = 4 # 5th record (0-indexed) with open("students.txt", "r") as file: records = file.readlines() name, grade = records[record_number].strip().split(",")
records[record_number] = f"{name},90n" # Update grade to 90 with open("students.txt", "w") as file: file.writelines(records)

Summary

Operation

Python Example

Open

open("file.txt", "r")

Read

file.readline() / for line in file:

Write

file.write("text")

Close

file.close() or use with open(...)

Random access

lines = file.readlines() + list indexing

Java

Basic file operations

BufferedReader reader = new BufferedReader(new FileReader("filename.txt"));
String line = reader.readLine();
reader.close(); BufferedWriter writer = new BufferedWriter(new FileWriter("filename.txt", true)); // true = append
writer.write("Some text");
writer.newLine();
writer.close();

Serial access (e.g. logging events)

Example: Appending log entries to a file (serial write)

import java.io.*;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter; public class SerialAccessExample { public static void main(String[] args) throws IOException { String message = "System started"; String timestamp = LocalTime.now().format(DateTimeFormatter.ofPattern("HH:mm")); String log = timestamp + " - " + message; BufferedWriter writer = new BufferedWriter(new FileWriter("logfile.txt", true)); writer.write(log); writer.newLine(); writer.close(); }
}

Sequential access (e.g. reading through all records)

Example: Reading through each student line by line

import java.io.*; public class SequentialAccessExample { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new FileReader("students.txt")); String line; while ((line = reader.readLine()) != null) { String[] parts = line.split(","); String name = parts[0]; String grade = parts[1]; System.out.println("Name: " + name + ", Grade: " + grade); } reader.close(); }
}

Random access (e.g. accessing specific records by key)

Example: Update a student’s grade by index (record number)

import java.io.*;
import java.util.*; public class RandomAccessExample { public static void main(String[] args) throws IOException { List<String> records = new ArrayList<>(); int recordNumber = 4; // 5th line (0-indexed) BufferedReader reader = new BufferedReader(new FileReader("students.txt")); String line; while ((line = reader.readLine()) != null) { records.add(line); } reader.close(); // Update the grade String[] parts = records.get(recordNumber).split(","); String updatedRecord = parts[0] + ",90"; records.set(recordNumber, updatedRecord); // Overwrite the file BufferedWriter writer = new BufferedWriter(new FileWriter("students.txt")); for (String record : records) { writer.write(record); writer.newLine(); } writer.close(); }
}

Summary

Operation

Java Example

Open (read)

BufferedReader reader = new BufferedReader(...)

Read

reader.readLine() or while ((line = ...) != null)

Write

BufferedWriter writer = new BufferedWriter(...)

Append

new FileWriter("file.txt", true)

Close

reader.close() / writer.close()

Random access

RandomAccessFile (complex) or simulate with List

Responses

您的邮箱地址不会被公开。 必填项已用 * 标注