assessment/utils/files.go (27 lines of code) (raw):

/* Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License.*/ package utils import ( "bufio" "os" ) func ReadFile(filepath string) (string, error) { return ReadFileWithExplicitBuffer(filepath, 0) } // ReadFileWithExplicitBuffer if bufferSize is greater than 0, then explicit buffer is used. func ReadFileWithExplicitBuffer(filepath string, bufferSize int) (string, error) { file, err := os.Open(filepath) if err != nil { return "", err } defer file.Close() scanner := bufio.NewScanner(file) if bufferSize > 0 { scanner.Buffer(make([]byte, bufferSize), bufferSize) } var content string for scanner.Scan() { content += scanner.Text() + "\n" } if err := scanner.Err(); err != nil { return "", err } return content, nil }