控制台程序,上一条博文(PrimesToFile2)每次将一个素数写入到文件中,所以效率不是很高.最好是使用更大的缓冲区并加载多个素数. 本例重复使用三个不同的视图缓冲区加载字节缓冲区并尽可能加入更多的素数,推荐使用这种方式. import static java.lang.Math.ceil; import static java.lang.Math.sqrt; import static java.lang.Math.min; import static java.nio.file.Stan…
控制台程序,使用单个写操作将数据从多个缓冲区按顺序传输到文件,这称为集中写(GatheringWrite)操作.这个功能的优势是能够避免在将信息写入到文件中之前将信息复制到单个缓冲区中.从每个缓冲区写入到文件中的数据有这个缓冲区的位置和限制决定. 本例会将字符串长度.字符串本身以及二进制素数值设置到单独的字节缓冲区中,另外还会将素数字符串作为本地编码的字节写入. import static java.lang.Math.ceil; import static java.lang.Math.sqr…
控制台程序,计算素数.创建文件路径.写文件. import static java.lang.Math.ceil; import static java.lang.Math.sqrt; import static java.lang.Math.min; import static java.nio.file.StandardOpenOption.*; import java.nio.file.*; import java.nio.channels.*; import java.nio.*; im…
控制台程序,在Junk目录中将字符串“Garbage in, garbage out\n”写入到名为charData.txt的文件中. import static java.nio.file.StandardOpenOption.*; import java.nio.file.*; import java.nio.channels.*; import java.util.EnumSet; import java.io.IOException; import java.nio.ByteBuffer…
控制台程序,使用Formatter对象将写入文件的数据准备好. 使用Formatter对象的format()方法,将数据值格式化到视图缓冲区charBuf中. import static java.nio.file.StandardOpenOption.*; import java.nio.file.*; // Files and Path import java.nio.channels.WritableByteChannel; import java.nio.*; // ByteBuffer…
控制台程序,将一系列有用的格言写入到文件中. 本例使用通道把不同长度的字符串写入到文件中,为了方便从文件中恢复字符串,将每个字符串的长度写入到文件中紧靠字符串本身前面的位置,这可以告知在读取字符串之前字符串中存在的字符数目,也可以使用视图缓冲区来读取字符串. import static java.nio.file.StandardOpenOption.*; import java.nio.file.*; import java.nio.channels.*; import java.util.E…
控制台程序.本例将对应于每个素数的数据以三个连续数据项的形式写入: 1.以二进制值表示的字符串长度值(最好是整型,但本例使用double类型): 2.素数值的字符串表示”Prime=nnn“,其中数字的位数明显是变化的: 3.将素数以long类型的二进制表示. 基本策略是,创建一个字节缓冲区,之后创建一系列将三种不同类型数据映射到其中的视图缓冲区.一种简单的方法是每次写入一个素数的数据. import static java.lang.Math.ceil; import static java.…
控制台程序,将一列字符串写入到文件中. import java.io.*; import java.nio.file.*; import java.nio.charset.Charset; public class WriterOutputToFile { public static void main(String[] args) { String[] sayings = {"A nod is as good as a wink to a blind horse.", "L…
控制台程序,创建一个文件并且使用通道将一些文本写入到这个文件中. import static java.nio.file.StandardOpenOption.*; import java.nio.channels.WritableByteChannel; import java.io.IOException; import java.nio.ByteBuffer; import java.util.EnumSet; import java.nio.file.*; public class Tr…
控制台程序,生成一些二进制整型值并且将它们写入到文件中. import java.nio.file.*; import java.nio.*; import java.io.*; public class StreamOutputToFile { public static void main(String[] args) { final int count = 50; // Number of values long[] fiboNumbers = {0L,0L}; // Array of 2…