逐行写入文件

时间:2014-02-17 13:05:23

标签: java java-io

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

        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());

2 个答案:

答案 0 :(得分:0)

输入数据:

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

答案 1 :(得分:0)

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