繁体   English   中英

逐行写入文件

[英]Writing into file line by line

我正在从文本[utf8格式]文件中读取数据,并将其存储在字符串中,然后将该字符串转换为十六进制格式,然后将此十六进制字符串保存到另一个文件中,但是我想逐行保存此转换后的十六进制字符串。 怎么做?

        String sCurrentLine;
        br = new BufferedReader(new FileReader("demmo123.txt"));
        while ((sCurrentLine = br.readLine()) != null) {
            sb1.append(sCurrentLine);
        }
        String ss = sb1.toString();
        Scanner sc = new Scanner(ss);
        String helloWorldHex = toHexString(ss.getBytes());
        file = new File("demmo.txt");
        fop = new FileOutputStream(file);
        if (!file.exists()) {
            file.createNewFile();
        }
        byte[] contentInBytes = helloWorldHex.getBytes();
        fop.write(helloWorldHex.getBytes());
        fop.write(contentInBytes);
        fop.flush();
        fop.close();
        fop.write(helloWorldHex.getBytes());

对于输入数据:

test string 1
test string 2
test string 3
test string 4


import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;

public class Example {
    public static void main(String[] args) {

        try {
            File input = new File("C:\\temp\\input.txt");
            File output = new File("C:\\temp\\output.txt");

            Scanner scanner = new Scanner(input);
            PrintWriter printer = new PrintWriter(output);
            while(scanner.hasNextLine()) {
                String string = scanner.nextLine();
                StringBuilder stringBuilder = new StringBuilder(200);
                for(char ch: string.toCharArray()) {
                    if(stringBuilder.length() > 0) stringBuilder.append(' ');
                    stringBuilder.append(String.format("%04x", (int)ch));
                }
                printer.write(stringBuilder.toString());                    
                printer.write("\r\n");
            }
            printer.flush();
            printer.close();
        }
        catch(FileNotFoundException e) {
            System.err.println("File not found.");
        }
    }

}

它给:

0074 0065 0073 0074 0020 0073 0074 0072 0069 006e 0067 0020 0031
0074 0065 0073 0074 0020 0073 0074 0072 0069 006e 0067 0020 0032
0074 0065 0073 0074 0020 0073 0074 0072 0069 006e 0067 0020 0033
0074 0065 0073 0074 0020 0073 0074 0072 0069 006e 0067 0020 0034
FileWriter writer = new FileWriter("outputfile.txt"); // use your file extension
String content = "My first line";
writer.write(content+"\n");
writer.flush();
//if you have array of string use for loop 
writer.close();
// you should use exception handing always and import relevant classes

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM