我寫了下面的代碼把字符串文件轉換爲字節數據文件,但是輸入文件和輸出文件是一樣的。我的代碼有什麼問題。如何將帶有字符串內容的文件轉換爲帶有字節內容的文件?
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Iterator;
import java.util.stream.Stream;
public class StringToBytes {
private static void convertor(Stream<String> input) throws IOException
{
File file = new File("byteTest.txt");
BufferedOutputStream writer = new BufferedOutputStream(new FileOutputStream(file));
Iterator<String> it= input.iterator();
while (it.hasNext())
{
byte []b= it.next().getBytes();
writer.write(b);
}
writer.close();
}
public static void main(String args[]) throws IOException{
Path path= Paths.get("test.txt");
Stream<String>lines=Files.lines(path, StandardCharsets.UTF_8);
convertor(lines);
}
}
我輸入文件的內容是:
San Francisco, officially the City and County of San Francisco, is the cultural center and a leading financial hub of the San Francisco Bay Area and Northern California.
The only consolidated city-county in California
我想要的輸出(byteTest.txt)文件具有輸出文件的財產以後像
[[email protected]
,而不是內容與輸入文件相同。
你是什麼意思的「文件的上下文」 - 你的意思是文件的*內容*?如果是這樣,文件總是*字節序列......目前還不清楚你實際要實現的目標。此外,在不指定編碼的情況下調用'String.getBytes()'幾乎總是一個壞主意。 – 2014-11-21 18:47:17
@ JonSkeet我編輯我的解釋。我的意思是內容。 – user3487667 2014-11-21 19:07:54
你想要ascii二進制字符串表示嗎?即c =「1100001」,g =「1100111」並將其打印到文件中? – Martin 2014-11-21 19:08:14