Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将长字符串压缩到文件中并检索它?_Java_String_File_Zip - Fatal编程技术网

Java 如何将长字符串压缩到文件中并检索它?

Java 如何将长字符串压缩到文件中并检索它?,java,string,file,zip,Java,String,File,Zip,我试图将一个长字符串压缩到一个文件中并检索它 以下代码不起作用。它检索到的是胡言乱语 public static void main(String args[]) { try { // Creating base for data StringBuilder sbb = new StringBuilder(); for (int i=0;i<1000;i++) sbb.append("ùertyty!|")

我试图将一个长字符串压缩到一个文件中并检索它

以下代码不起作用。它检索到的是胡言乱语

public static void main(String args[]) {

    try {

        // Creating base for data
        StringBuilder sbb = new StringBuilder();
        for (int i=0;i<1000;i++)
            sbb.append("ùertyty!|").append(Integer.toString(i));

        File FileAll = new File(".\\All.data");
        FileAll.createNewFile();

        // Zipping into file
        DeflaterOutputStream g = new DeflaterOutputStream(
                new FileOutputStream(FileAll));

        OutputStreamWriter osw = new OutputStreamWriter(g);

        String base = sbb.toString();
        osw.write(base);
        osw.close();

        FileInputStream ALL_FIS = new FileInputStream(FileAll);

        // Re-reading from file
        DeflaterInputStream dis = new DeflaterInputStream(ALL_FIS);
        InputStreamReader isr = new InputStreamReader(dis);

        StringBuilder sb = new StringBuilder();
        char[] c = new char[1000];

        int count = isr.read(c);

        while ( count != -1 ) {
            sb.append(c, 0, count);
            count = isr.read(c);
        }

        isr.close();

        String retr = sb.toString();
        System.out.println("Are equal: " + retr.equals(base));
        System.out.println("Base: " + base);
        System.out.println("Retr: " + retr);

    } catch (IOException e) {

        System.err.println(e.toString());

    }

}
publicstaticvoidmain(字符串参数[]){
试一试{
//创建数据基础
StringBuilder sbb=新的StringBuilder();

对于(int i=0;i您需要使用充气输入流(解压缩)而不是放气输入流


您需要使用充气输入流(减压)而不是放气输入流